Add validation error serializers
This commit is contained in:
parent
2def96352f
commit
c78af47582
2 changed files with 49 additions and 0 deletions
33
app/helpers/validation_error_serializer.rb
Normal file
33
app/helpers/validation_error_serializer.rb
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
class ValidationErrorSerializer
|
||||||
|
def initialize(record, field, details)
|
||||||
|
@record = record
|
||||||
|
@field = field
|
||||||
|
@details = details
|
||||||
|
end
|
||||||
|
|
||||||
|
def serialize
|
||||||
|
{
|
||||||
|
resource: resource,
|
||||||
|
field: field,
|
||||||
|
code: code
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def resource
|
||||||
|
@record.class.to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
def field
|
||||||
|
@field.to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
def code
|
||||||
|
@details[:error].to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
def underscored_resource_name
|
||||||
|
@record.class.to_s.gsub('::', '').underscore
|
||||||
|
end
|
||||||
|
end
|
||||||
16
app/helpers/validation_errors_serializer.rb
Normal file
16
app/helpers/validation_errors_serializer.rb
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
class ValidationErrorsSerializer
|
||||||
|
attr_reader :record
|
||||||
|
|
||||||
|
def initialize(record)
|
||||||
|
@record = record
|
||||||
|
end
|
||||||
|
|
||||||
|
def serialize
|
||||||
|
record.errors.details.map do |field, details|
|
||||||
|
details.map do |error_details|
|
||||||
|
ValidationErrorSerializer.new(record, field, error_details).serialize
|
||||||
|
end
|
||||||
|
end.flatten
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in a new issue