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