Module: JSONAPI::Rails::Controller

Extended by:
ActiveSupport::Concern
Defined in:
lib/jsonapi/rails/controller.rb

Overview

ActionController methods and hooks for JSON API deserialization and

rendering.

Constant Summary collapse

JSONAPI_POINTERS_KEY =
'jsonapi-rails.jsonapi_pointers'.freeze

Instance Method Summary collapse

Instance Method Details

#jsonapi_classHash{Symbol=>Class}

Hook for serializable class mapping (for resources). Overridden by the ‘class` renderer option.

Returns:

  • (Hash{Symbol=>Class})


89
90
91
# File 'lib/jsonapi/rails/controller.rb', line 89

def jsonapi_class
  JSONAPI::Rails.config[:jsonapi_class].dup
end

#jsonapi_errors_classHash{Symbol=>Class}

Hook for serializable class mapping (for errors). Overridden by the ‘class` renderer option.

Returns:

  • (Hash{Symbol=>Class})


96
97
98
# File 'lib/jsonapi/rails/controller.rb', line 96

def jsonapi_errors_class
  JSONAPI::Rails.config[:jsonapi_errors_class].dup
end

#jsonapi_exposeHash

Hook for default exposures.

Returns:

  • (Hash)


109
110
111
# File 'lib/jsonapi/rails/controller.rb', line 109

def jsonapi_expose
  instance_exec(&JSONAPI::Rails.config[:jsonapi_expose])
end

#jsonapi_objectHash

Hook for the jsonapi object. Overridden by the ‘jsonapi_object` renderer option.

Returns:

  • (Hash)


103
104
105
# File 'lib/jsonapi/rails/controller.rb', line 103

def jsonapi_object
  JSONAPI::Rails.config[:jsonapi_object]
end

#jsonapi_pagination(resources) ⇒ Hash

Hook for pagination scheme.

Returns:

  • (Hash)


115
116
117
# File 'lib/jsonapi/rails/controller.rb', line 115

def jsonapi_pagination(resources)
  instance_exec(resources, &JSONAPI::Rails.config[:jsonapi_pagination])
end

#jsonapi_pointersHash{Symbol=>String}

JSON pointers for deserialized fields.

Returns:

  • (Hash{Symbol=>String})


121
122
123
# File 'lib/jsonapi/rails/controller.rb', line 121

def jsonapi_pointers
  request.env[JSONAPI_POINTERS_KEY] || {}
end