12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/skooma/objects/response/keywords/content.rb', line 12
def evaluate(instance, result)
return result.discard unless instance["body"].value
media_type = instance["headers"]&.[]("Content-Type")&.split(";")&.first&.strip&.downcase
media_type_object, matched_media_type = find_media_type(media_type)
return result.failure("Media type #{media_type} not found") unless media_type_object
result.annotate(matched_media_type)
result.call(instance, matched_media_type) do |media_type_result|
media_type_object.evaluate(instance["body"], media_type_result)
result.failure("Invalid content") unless media_type_result.passed?
end
end
|