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(this.signature + r':([0-9]+)');
  String match = regExp.firstMatch(info['rule'])?.group(1) ?? "";
  int intMatch = int.parse(match);
  info.dump();
  this.description =
      "The $attribute must be younger than $intMatch years old.";
  this.textFieldMessage = "Must be younger than $intMatch years old.";
  super.handle(info);
  dynamic date = info['data'];
  if (date is String) {
    DateTime? dateParsed = DateTime.tryParse(date);
    if (dateParsed == null) {
      NyLogger.error('Date is not valid');
      return false;
    }
    return dateParsed.isAgeYounger(intMatch) ?? false;
  }
  if (date is DateTime) {
    return date.isAgeYounger(intMatch) ?? false;
  }
  return false;
}