textToDrivingLicence method

dynamic textToDrivingLicence(
  1. String text, {
  2. required String? inputName,
  3. required String? inputSurName,
  4. required String? inputAddress,
  5. required String? inputHeight,
  6. required String? inputBloodGroup,
  7. required String? inputPassportNumber,
  8. required String? inputLicenceNumber,
  9. required String? inputExpiryDate,
  10. required String? inputIssueDate,
  11. required String? inputBirthDate,
  12. required String? inputCountry,
})

Implementation

textToDrivingLicence(
  String text, {
  required String? inputName,
  required String? inputSurName,
  required String? inputAddress,
  required String? inputHeight,
  required String? inputBloodGroup,
  required String? inputPassportNumber,
  required String? inputLicenceNumber,
  required String? inputExpiryDate,
  required String? inputIssueDate,
  required String? inputBirthDate,
  required String? inputCountry,
}) {
  print(text);
  String namePrefix = 'Name ';
  String surNamePrefix = 's/o w/o d/o';
  // String identityNumberPrefix = 'Identity Number ';

  String? name = getValueFromPrefix(text, namePrefix, split: ' @@ ')?.trim();
  String? surName =
      getValueFromPrefix(text, surNamePrefix, split: ' @@ ')?.trim();
  String? country = getCountry(text);
  String? licenceNumber = getLicenceNumber(text);
  String? address = getAddress(text);
  String? height = getHeight(text);
  String? bloodGroup = getBloodGroup(text);
  String? passportNumber = getPasportNumber(text);

  RegExp dateOfBirthRegex = RegExp(r"Date of Birth : (\d{2}-\d{2}-\d{4})");
  RegExp issueDateRegex = RegExp(r"Issue Date : (\d{2}-\d{2}-\d{4})");
  RegExp expiryDateRegex = RegExp(r"Expiry Date @@ :(\d{2}-\d{2}-\d{4})");

  String? dateOfBirth = dateOfBirthRegex.firstMatch(text)?.group(1);
  String? dateOfIssue = issueDateRegex.firstMatch(text)?.group(1);
  String? dateOfExpiry = expiryDateRegex.firstMatch(text)?.group(1);
  print('************');

  if (dateOfIssue != null && dateOfExpiry != null && dateOfBirth != null) {
    List<String> sortedDates =
        sortDates([dateOfBirth, dateOfExpiry, dateOfIssue]);

    dateOfBirth = sortedDates[0];
    dateOfIssue = sortedDates[1];
    dateOfExpiry = sortedDates[2];
  }

  Map<String, String?> drivingLicenceData = {
    'name': name ?? inputName,
    'sur_name': surName ?? inputSurName,
    'licence_number': licenceNumber ?? inputLicenceNumber,
    'date_of_expiry': dateOfExpiry ?? inputExpiryDate,
    'date_of_issue': dateOfIssue ?? inputIssueDate,
    'date_of_birth': dateOfBirth ?? inputBirthDate,
    'country': country ?? inputCountry,
    'passport_number': passportNumber ?? inputPassportNumber,
    'blood_group': bloodGroup ?? inputBloodGroup,
    'height': height ?? inputHeight,
    'address': address ?? inputAddress
  };
  print(drivingLicenceData);
  return drivingLicenceData;
}