Add validation error serializers

This commit is contained in:
Justin Edmund 2020-09-25 10:51:08 -07:00
parent 2def96352f
commit c78af47582
2 changed files with 49 additions and 0 deletions

View 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

View 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