textToAtmCard method
dynamic
textToAtmCard(})
Implementation
textToAtmCard(
String text, {
required String? inputName,
required String? inputBankName,
required String? inputCardNumber,
required String? inputExpiryDate,
required String? inputIssueDate,
required String? inputPaymentNetwork,
required String? inputCardType,
}) {
List<String> paymentGatewayProviders = [
'Visa',
'Master',
'PayPal',
'Stripe',
'American Express',
'Square',
'Braintree',
'Authorize.Net',
'Skrill',
'PayU',
];
print(text);
String? name;
String? bankName;
String? cardNumber;
String? expiryDate;
String? issueDate;
String? paymentNetwork;
String? cardType;
name = findName(text);
List<String> dates = findDates(text);
if (dates.length > 1) {
issueDate = dates[0];
expiryDate = dates[1];
}
cardType = text.toLowerCase().contains('credit') ? 'Credit' : 'Debit';
cardNumber = findDigits(text);
paymentGatewayProviders.forEach((element) {
if (text.toLowerCase().contains(element.toLowerCase())) {
paymentNetwork = element;
}
});
text.split('@@').forEach((element) {
if (element.toLowerCase().contains('bank')) {
bankName = element.trim();
}
});
Map<String, String?> atmCardData = {
'name': name ?? inputName,
'bank_name': bankName ?? inputBankName,
'card_number': cardNumber,
'date_of_expiry': expiryDate ?? inputExpiryDate,
'date_of_issue': issueDate ?? inputIssueDate,
'payment_network': paymentNetwork ?? inputPaymentNetwork,
'card_type': cardType,
};
print(atmCardData);
return atmCardData;
}