validateUser function

void validateUser(
  1. Map<String, dynamic> json,
  2. {bool update = false}
)

Validate UserModel

Implementation

void validateUser(Map<String, dynamic> json, {bool update = false}) {
  final errors = <Validate>[];

  // fields
  const fieldName = 'name';
  const fieldEmail = 'email';
  const fieldPwd = 'password';

  // validate name
  if (!update && json[fieldName] == null ||
      json[fieldName].toString().isEmpty) {
    errors.add(
      Validate(
        field: fieldName,
        message: '${fieldName.capitalize()} is required',
      ),
    );
  }

  // validate email
  if (!update && json[fieldEmail] == null ||
      json[fieldEmail].toString().isEmpty) {
    errors.add(
      Validate(
        field: fieldEmail,
        message: '${fieldEmail.capitalize()} is required',
      ),
    );
  } else if (!validated.isEmail(json[fieldEmail].toString())) {
    errors.add(
      Validate(
        field: fieldEmail,
        message: '${fieldEmail.capitalize()} is not match',
      ),
    );
  }

  // validate password
  if (!update && json[fieldPwd] == null ||
      json[fieldPwd].toString().isEmpty) {
    errors.add(
      Validate(
        field: fieldPwd,
        message: '${fieldPwd.capitalize()} is required',
      ),
    );
  } else if (!validated.isLength(json[fieldPwd].toString(), 8, 16)) {
    errors.add(
      Validate(
        field: fieldPwd,
        message: '${fieldPwd.capitalize()} min 8 max 16.',
      ),
    );
  }

  if (errors.isNotEmpty) {
    throw AppException.unprocessableEntity(errors);
  }
}