getBankFromSheba static method

BankInfo? getBankFromSheba(
  1. String sheba
)

Gets bank information from IBAN @param sheba The IBAN number @returns BankInfo? Bank information or null if invalid Example: PersianTools.getBankFromSheba("IR123456789012345678901234") => BankInfo(...)

Implementation

static BankInfo? getBankFromSheba(String sheba) {
  if (!isShebaValid(sheba)) return null;
  final String? bankCode = RegExp(r"IR[0-9]{2}([0-9]{3})").firstMatch(sheba)?[1];
  final BankInfo? bank = _bankInfo[bankCode];
  if (bank == null) return null;
  if (bank.isAccountNumberAvailable && bank.process != null) {
    final AccountNumberModel data = bank.process!(sheba);
    return bank.copyWith(
      accountNumber: data.accountNumber,
      formattedAccountNumber: data.formattedAccountNumber,
    );
  }
  return bank;
}