addNewCard method

void addNewCard(
  1. BuildContext context
)

Implementation

void addNewCard(BuildContext context) async{
  FocusScope.of(context).requestFocus(FocusNode());
  if (formKey.currentState!.validate()) {
    FocusScope.of(context).unfocus();
    // Get hold of the current form state
    final FormState form = formKey.currentState!;
    //save form values
    form.save();
    try{
    isLoading.value = true;
     var request = {
        'token': Storage.getValue(Constants.token),
        'api_key': Constants.apiKey,
        'sub_client_api_key': Storage.getValue(Constants.subClientApiKey),
        'card_name' : userFirstName.value,
        'card_number': paymentCard.number,
        'cvv' : paymentCard.cvv,
        'expiry_month' : paymentCard.month,
        'expiry_year' : paymentCard.year,
        'zip' : zipController.text.toString()
      };
    var response = await DioClient().request(context: context,api:'/tokenize-card',method:Method.POST ,params: request);

    //  TokenizeCardResponse tokenizeCardResponse = TokenizeCardResponse.fromJson(response);

        Map<String, dynamic> respJson =  Map<String, dynamic>.from(response);
        final String status = respJson['status'] as String;
        final String message = respJson['message'] as String;

    if (status == Strings.success) {
      Utils.navigationReplace(context, Successful(
                successTitle: Strings.cardAddedSuccessfully,
                successMessage: DateFormat.jm().format(DateTime.parse(DateTime.now().toString()).toLocal()),
                ));
      paymentsController.fetchfundingSources(context);
      } else {
         return Utils.showSnackbar(context, Strings.error,message.toString().toTitleCase(),  AppColors.red);
       }
      } finally {
      isLoading(false);
    }
    update();
  }
}