fetchfundingSources method

Future<void> fetchfundingSources(
  1. BuildContext context
)

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();
}