RsaIdCard.fromBarcodeString constructor

RsaIdCard.fromBarcodeString(
  1. String barcodeString
)

Returns a SmartId instance from the String read from the barcode of the ID.

The barcodeString is expected to be in the following format: SURNAME|NAME|GENDER|NATIONALITY|ID NUMBER|BIRTH DATE|COUNTRY OF BIRTH|CITIZENSHIP STATUS|ISSUE DATE|23370|SMART ID NUMBER|1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

If the format above is not adhered to an a FormatException will be thrown.

Implementation

factory RsaIdCard.fromBarcodeString(String barcodeString) {
  try {
    var fields = barcodeString.split('|');

    var surname = fields[0];
    var firstNames = fields[1];
    var gender = fields[2];
    var nationality = fields[3];
    var idNumber = fields[4];
    var birthDate = _dateFromShortString(fields[5]);
    var countryOfBirth = fields[6];
    var citizenshipStatus = fields[7];
    var issueDate = _dateFromShortString(fields[8]);
    var smartIdNumber = fields[10];

    return RsaIdCard(
      idNumber: idNumber,
      firstNames: firstNames,
      surname: surname,
      gender: gender,
      birthDate: birthDate,
      issueDate: issueDate,
      smartIdNumber: smartIdNumber,
      nationality: nationality,
      countryOfBirth: countryOfBirth,
      citizenshipStatus: citizenshipStatus,
    );
  } catch (e) {
    throw FormatException(
        'Could not instantiate Smart ID from given barcode String: $e');
  }
}