call method

String? call(
  1. dynamic value
)

Implementation

String? call(value) {
  if (none) return null;
  final _mustNumber = mustNumber || minValue != null || maxValue != null || mustInt;

  if (value == null || value == 'null') {
    if (req || noGap || phoneNumber || firebaseSafe || mustNumber || mustInt || minLength != null || maxLength != null || minValue != null || maxValue != null) {
      return 'required'.translate;
    }
  }
  if (value is String) {
    if (req && value.trim().isEmpty) {
      return 'required'.translate;
    }
    if (noGap && value.contains(' ')) {
      return 'noGap'.translate;
    }
    if (firebaseSafe) {
      if (value.contains('.') || value.contains('\$') || value.contains('[') || value.contains(']') || value.contains('#') || value.contains('/') || value.contains('%') || value.contains('\\') || value.contains('-')) {
        return 'firebaseSafe'.translate;
      }
    }

    if (_mustNumber) {
      if (value.isNotEmpty && num.tryParse(value) == null) {
        return 'mustNumber'.translate;
      }
      if (mustInt && value.isNotEmpty && int.tryParse(value) == null) {
        return 'mustIntNumber'.translate;
      }
    }
    if (phoneNumber) {
      for (var i = 0; i < value.length; i++) {
        if (!'+1234567890'.contains(value[i])) {
          return 'mustPhoneNumber'.translate;
        }
      }
    }
    if (mailAddress && GetUtils.isEmail(value) == false) {
      return 'mustEmailAddress'.translate;
    }
    //todo argtranslate
    if (minLength != null && value.trim().length < minLength!) {
      return 'minLength'.argTranslate(minLength.toString());
    }
//todo argtranslate
    if (maxLength != null && value.trim().length > maxLength!) {
      return 'maxLength'.argTranslate(maxLength.toString());
    }
    if (value.isNotEmpty && num.tryParse(value) != null) {
      if (maxValue != null) {
        if (num.parse(value) > maxValue!) {
          return 'maxNumberErr'.argTranslate(maxValue.toString());
        }
      }
      if (minValue != null) {
        if (num.parse(value) < minValue!) {
          return 'minNumberErr'.argTranslate(minValue.toString());
        }
      }
    }
  }

  if (value is num) {
    if (maxValue != null) {
      if (value > maxValue!) {
        return 'maxNumberErr'.argTranslate(maxValue.toString());
      }
    }
    if (minValue != null) {
      if (value < minValue!) {
        return 'minNumberErr'.argTranslate(minValue.toString());
      }
    }
  }

  if (value is List) {
    if (req) {
      if (value.isEmpty) {
        return 'required'.translate;
      }
    }

    if (minLength != null) {
      if (value.length < minLength!) {
        return 'minLengthList'.argTranslate(minLength.toString());
      }
    }

    if (maxLength != null) {
      if (value.length > maxLength!) {
        return 'maxLengthList'.argTranslate(maxLength.toString());
      }
    }
  }
  return null;
}