validate method
Validates the resource based on the provided fieldDefinitions.
Implementation
ValidationResult validate(
// ignore: strict_raw_type
List<FieldDefinition> fieldDefinitions,
) {
final errorMessages = <ValidationError>[];
for (final fieldDefinition in fieldDefinitions) {
final validationResult =
fieldDefinition.validate(json[fieldDefinition.name]);
if (validationResult.isNotEmpty) {
errorMessages.addAll(validationResult);
}
}
final allowedFields = <String>{
...fieldDefinitions.map((field) => field.name),
'resourceType',
'extension',
};
// ignore: unused_local_variable
final superfluousFields = json.fields
.toSet()
.difference(allowedFields)
.map(
(name) => name,
)
.toList();
errorMessages.addAll(
superfluousFields.map(
(name) => ValidationError(
message: 'Field $name is not allowed',
field: name,
),
),
);
return ValidationResult(errorMessages);
}