fetchfundingSources method
Implementation
Future<void> fetchfundingSources(BuildContext context) async {
try {
isLoading(true);
offStageRequestButton(true);
var request = {
'token': Storage.getValue(Constants.token),
'api_key': Constants.apiKey,
'sub_client_api_key': Storage.getValue(Constants.subClientApiKey)
};
var response = await DioClient().request(
context: context,
api: '/get-funding-sources',
method: Method.POST,
params: request);
GetFundingResponse getFundingResponse =
GetFundingResponse.fromJson(response);
if (getFundingResponse.status == Strings.success) {
var allCards = getFundingResponse.data!.cards!.obs;
if (allCards.isNotEmpty) {
for (Cards card in allCards) {
if (card.primaryCard == "true") {
primaryCard.value = card;
Storage.removeValue(Constants.cardNumber);
Storage.removeValue(Constants.cardId);
Storage.saveValue(Constants.isCardAdded, true);
Storage.saveValue(
Constants.cardId, primaryCard.value.id.toString());
Storage.saveValue(Constants.cardNumber,
primaryCard.value.metaDataJson!.maskedCardNumber!);
Utils.navigationReplace(
context,
Successful(
successTitle: 'Cards fetched Successfully',
successMessage: DateFormat.jm().format(
DateTime.parse(DateTime.now().toString()).toLocal()),
));
} else {
primaryCard.value = allCards.first;
Storage.removeValue(Constants.cardNumber);
Storage.removeValue(Constants.cardId);
Storage.saveValue(Constants.isCardAdded, true);
Storage.saveValue(Constants.cardNumber,
allCards.first.metaDataJson!.maskedCardNumber!);
Storage.saveValue(Constants.cardId, allCards.first.id.toString());
Utils.navigationReplace(
context,
Successful(
successTitle: 'Cards fetched Successfully',
successMessage: DateFormat.jm().format(
DateTime.parse(DateTime.now().toString()).toLocal()),
));
}
}
} else {
Utils.navigationReplace(context, const PayWithBankCard());
Utils.showSnackbar(context, Strings.success,
getFundingResponse.message!, AppColors.green);
}
} else {
return Utils.showSnackbar(context, Strings.error,
response['message'].toString().toTitleCase(), AppColors.red);
}
} finally {
isLoading(false);
offStageRequestButton(false);
}
update();
}