validateData method
Validates specific input data against rules.
Implementation
Future<Map<String, dynamic>> validateData(
Map<String, dynamic> data,
Map<String, dynamic> rules,
) async {
// If no files are provided in data, try to get them from the body parser
final validationData = Map<String, dynamic>.from(data);
if (_bodyParser.files != null && !validationData.containsKey('files')) {
validationData.addAll(_bodyParser.files as Map<String, dynamic>);
}
final validator = InputValidator(validationData, rules);
if (!await validator.passes()) {
throw ValidationException(validator.errors);
}
// Return only the validated data that are in the rules
return {
for (var key in rules.keys)
if (validationData.containsKey(key)) key: validationData[key],
};
}