getBrand method

int getBrand()

Implementation

int getBrand() {
  try {
    int.parse(cardNumber);
  } catch (_) {
    return ANY;
  }

  String card = cardNumber;

  if (card.length >= 3) {
    int n = int.parse(card.substring(0, 3));
    if ((n >= 300 && n <= 305) || n == 309) {
      return DINERS_CLUB;
    }
  }

  if (card.length >= 2) {
    int n = int.parse(card.substring(0, 2));
    if (n == 36 || n == 38 || n == 39) {
      return DINERS_CLUB;
    } else if (n == 34 || n == 37) {
      return AMERICAN_EXPRESS;
    } else if (n >= 51 && n <= 55) {
      return MASTER_CARD;
    }
  }

  if (card.length >= 1) {
    int n = int.parse(card[0]);
    if (n == 4) {
      return VISA;
    }
  }
  return ANY;
}