SmsCodeResult.fromSms constructor

SmsCodeResult.fromSms(
  1. String? sms,
  2. String matcher
)

Implementation

factory SmsCodeResult.fromSms(String? sms, String matcher) {
  String? extractCode(String? sms) {
    if (sms == null) return null;

    try {
      final intRegex = RegExp(matcher, multiLine: true);
      final allMatches = intRegex.allMatches(sms);
      if (allMatches.isNotEmpty) {
        allMatches.first.group(0);
        return intRegex.allMatches(sms).first.group(0);
      }
    } catch (e) {
      debugPrint('$e');
      return null;
    }
    return null;
  }

  return SmsCodeResult(
    sms: sms,
    succeed: sms != null,
    code: extractCode(sms),
  );
}