parent
e345873447
commit
af267cc08f
@ -0,0 +1,16 @@
|
|||||||
|
class ApiKeyGrantsValidator < ActiveModel::EachValidator
|
||||||
|
|
||||||
|
def validate_each(record, attribute, value)
|
||||||
|
return record.errors[attribute] = ['grants has to be an array'] unless value.is_a?(Array)
|
||||||
|
|
||||||
|
record.errors[attribute] << 'only one apis section is allowed' unless value.count { |v| v[:type] == 'apis' } == 1
|
||||||
|
|
||||||
|
max_one_sections = ['database', 'dataservices', 'user', 'data-observatory']
|
||||||
|
max_one_sections.each do |section|
|
||||||
|
if value.count { |v| v[:type] == section } > 1
|
||||||
|
record.errors[attribute] << "only one #{section} section is allowed"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in new issue