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