parseAsPokeregiToken function

String parseAsPokeregiToken(
  1. String token
)

Implementation

String parseAsPokeregiToken(String token) {
  // * {25 ALNUM} - (Pokeregi_V1 OfflineMode QR)
  final V1_QR_REG = RegExp(r'^([0-9A-Z]{25})$');
  // * https://www.pokepay.jp/pd?={25 ALNUM} - (Pokeregi_V1 OfflineMode NFC)
  // * https://www.pokepay.jp/pd/{25 ALNUM}  - (Pokeregi_V2 OfflineMode QR & NFC)
  final RegExp V1_NFC_V2_QR_NFC_REG =
      RegExp(r'^https://www(?:-dev|-sandbox|-qa|)\.pokepay\.jp/pd(?:/|\\?d=)([0-9A-Z]{25})$');
  // matching
  final v1 = V1_QR_REG.allMatches(token);
  if (V1_QR_REG.hasMatch(token)) {
    return v1.elementAt(0).group(1) ?? "";
  }
  final v2 = V1_NFC_V2_QR_NFC_REG.allMatches(token);
  if (V1_NFC_V2_QR_NFC_REG.hasMatch(token)) {
    return v2.elementAt(0).group(1) ?? "";
  }
  return "";
}