isValidModel static method

bool isValidModel(
  1. BuildContext context,
  2. dynamic model, {
  3. String? message,
  4. Function? validator,
})

Implementation

static bool isValidModel(BuildContext context, dynamic model,
    {String? message, Function? validator}) {
  bool valid = true;

  var modelMembers = Dynamic(model).modelMembers;

  // Annotation validations
  for (var item in Libs.modelValidationFunctions.entries) {
    if (modelMembers[item.key] != null) {
      var ret = item.value.call();
      if (ret != null) {
        valid = ret;
        if (!valid) Libs.modelValidationData[item.key]!.isValid = false;
      }
    }
  }
  if (!valid) {
    rf.msg(
        context,
        message ??
            'Data save was unsuccessful due to missing mandatory fields!');
    return valid;
  }

  // Global config validations
  for (var element in Libs.config.model.validators!) {
    valid = element(context);
    var methodName = Dynamic.methodName(element);
    if (!valid) {
      return valid;
    }
  }

  // Local config validations
  if (validator != null) {
    String msg = validator.call() ?? '';
    if (msg.isNotEmpty) {
      rf.msg(context, msg ?? 'Data save was unsuccessful due some error!');
      return false;
    }
  }

  return valid;
}