class JoyfulJsonapi::ErrorSerializer
Public Class Methods
new(model)
click to toggle source
# File lib/joyful_jsonapi/error_serializer.rb, line 5 def initialize(model) @model = model @model.valid? end
Public Instance Methods
serializable_hash()
click to toggle source
# File lib/joyful_jsonapi/error_serializer.rb, line 10 def serializable_hash { errors: errors_for(@model) } end
serialized_json(options = nil)
click to toggle source
# File lib/joyful_jsonapi/error_serializer.rb, line 14 def serialized_json(options = nil) serializable_hash.to_json(options) end
Private Instance Methods
build_hash_for(field, error_message)
click to toggle source
# File lib/joyful_jsonapi/error_serializer.rb, line 32 def build_hash_for(field, error_message) {}.tap do |hash| hash[:status] = "422" hash[:source] = { pointer: "/data/attributes/#{field}" } hash[:detail] = error_message end end
build_hashes_for(field, errors)
click to toggle source
# File lib/joyful_jsonapi/error_serializer.rb, line 26 def build_hashes_for(field, errors) errors.map do |error_message| build_hash_for(field, error_message) end.flatten end
errors_for(resource)
click to toggle source
# File lib/joyful_jsonapi/error_serializer.rb, line 20 def errors_for(resource) resource.errors.messages.flat_map do |field, errors| build_hashes_for(field, errors) end end