validateEvent function

HookedServiceEventListener<dynamic, dynamic, Service<Never, Never>> validateEvent(
  1. Validator validator, {
  2. String errorMessage = 'Invalid data.',
})

Validates the data in e.data, and sets the data to filtered data before continuing the service event.

Implementation

HookedServiceEventListener validateEvent(Validator validator,
    {String errorMessage = 'Invalid data.'}) {
  return (HookedServiceEvent e) async {
    var app = e.request?.app ?? e.service.app;
    if (app != null) {
      var result = await asyncApplyValidator(validator, e.data as Map, app);

      if (result.errors.isNotEmpty) {
        throw AngelHttpException.badRequest(
            message: errorMessage, errors: result.errors);
      }

      e.data
        ..clear()
        ..addAll(result.data);
    }
  };
}