class JSONAPI::Rails::ErrorsRenderer

@private

Public Class Methods

new(renderer = JSONAPI::Serializable::Renderer.new) click to toggle source
# File lib/jsonapi/rails/renderer.rb, line 43
def initialize(renderer = JSONAPI::Serializable::Renderer.new)
  @renderer = renderer

  freeze
end

Public Instance Methods

render(errors, options, controller) click to toggle source
# File lib/jsonapi/rails/renderer.rb, line 49
def render(errors, options, controller)
  options = default_options(options, controller)

  errors = [errors] unless errors.is_a?(Array)

  @renderer.render_errors(errors, options)
end

Private Instance Methods

default_options(options, controller) click to toggle source
# File lib/jsonapi/rails/renderer.rb, line 59
def default_options(options, controller)
  options.dup.tap do |opts|
    opts[:class] ||= controller.jsonapi_errors_class
    opts[:links] = controller.jsonapi_links.merge!(opts[:links] || {})
    opts[:expose] =
      controller.jsonapi_expose
                .merge(opts[:expose] || {})
                .merge!(_jsonapi_pointers: controller.jsonapi_pointers)
    opts[:jsonapi] = opts.delete(:jsonapi_object) ||
                     controller.jsonapi_object
  end
end