bodyFieldAllowedValues<B extends Body> function
bodyFieldAllowedValues check if the fieldName
value is allowed base on allowedValues
if check failed return BadRequest response
Implementation
Middleware bodyFieldAllowedValues<B extends Body>(
String fieldName, List<String> allowedValues) {
return (handler) {
return (request) {
Response? checkItem(Map<String, dynamic> item) {
final value = item[fieldName] as String;
if (!allowedValues.contains(value)) {
final bodyResponse = BadRequest(
'about:blank',
'Not allowed value',
'The value \'$value\' is not allowed, allowed values are: \'${allowedValues.join('\', \'')}\'',
400,
request.requestedUri.path,
field: fieldName,
);
return generateResponse(request, bodyResponse);
}
return null;
}
final body = request.get<B>();
final response = _checkData(body.data, checkItem);
if (response != null) {
return response;
}
return handler(request);
};
};
}