handle method

  1. @override
bool handle(
  1. Map<String, dynamic> info
)
override

Handle the validation, the info variable will contain the following: info'rule' = Validation rule i.e "min". info'data' = Data the user has passed into the validation. info'message' = Overriding message to be displayed for validation (optional).

Implementation

@override
bool handle(Map<String, dynamic> info) {
  RegExp regExp = RegExp(signature + r':([0-9]+)');
  String match = regExp.firstMatch(info['rule'])?.group(1) ?? "";
  int intMatch = int.parse(match);
  description =
      "The $attribute must have a minimum length of $intMatch characters.";
  textFieldMessage = "Must be a minimum of $intMatch characters.";
  super.handle(info);

  dynamic data = info['data'];
  if (data is String) {
    description =
        "$attribute must be a maximum length of $intMatch characters.";
    textFieldMessage = "Must be a maximum of $intMatch characters.";
    super.handle(info);
    return (data.length > intMatch);
  }

  if (data is int) {
    description = "$attribute must be a maximum of $intMatch.";
    textFieldMessage = "Must be a maximum of $intMatch.";
    super.handle(info);
    return (data > intMatch);
  }

  if (data is List) {
    description = "$attribute must be a maximum of $intMatch.";
    textFieldMessage = "Must be a maximum of $intMatch.";
    super.handle(info);
    return (data.length > intMatch);
  }

  if (data is Map) {
    description = "$attribute must be a maximum of $intMatch.";
    textFieldMessage = "Must be a maximum of $intMatch.";
    super.handle(info);
    return (data.length > intMatch);
  }

  if (data is double) {
    description = "$attribute must be a maximum of $intMatch.";
    textFieldMessage = "Must be a maximum of $intMatch.";
    super.handle(info);
    return (data > intMatch);
  }
  return false;
}