validate method

  1. @override
Future<void> validate(
  1. EngineContext context,
  2. Map<String, String> rules, {
  3. bool bail = false,
  4. Map<String, String>? messages,
})
override

Validates the data from the request context.

context - The context of the engine containing request data. data - A map of data to be validated.

Implementation

@override
Future<void> validate(
  EngineContext context,
  // ignore: avoid_renaming_method_parameters
  Map<String, String> rules, {
  bool bail = false,
  Map<String, String>? messages,
}) async {
  final multipartForm = await context.multipartForm;
  final data = multipartForm.fields;

  final registry = requireValidationRegistry(context.container);
  final validator = Validator.make(
    rules,
    registry: registry,
    bail: bail,
    messages: messages,
  );

  for (final file in multipartForm.files) {
    data[file.name] = file;
  }
  final errors = validator.validate(data);

  if (errors.isNotEmpty) {
    throw ValidationError(errors);
  }
}