Module: JSONAPI::Realizer

Defined in:
lib/jsonapi/realizer.rb,
lib/jsonapi/realizer/error.rb,
lib/jsonapi/realizer/action.rb,
lib/jsonapi/realizer/adapter.rb,
lib/jsonapi/realizer/version.rb,
lib/jsonapi/realizer/resource.rb,
lib/jsonapi/realizer/action/show.rb,
lib/jsonapi/realizer/action/index.rb,
lib/jsonapi/realizer/action/create.rb,
lib/jsonapi/realizer/action/update.rb,
lib/jsonapi/realizer/action/destroy.rb,
lib/jsonapi/realizer/adapter/memory.rb,
lib/jsonapi/realizer/adapter/active_record.rb,
lib/jsonapi/realizer/error/invalid_accept_header.rb,
lib/jsonapi/realizer/error/missing_accept_header.rb,
lib/jsonapi/realizer/error/missing_root_property.rb,
lib/jsonapi/realizer/error/invalid_content_type_header.rb,
lib/jsonapi/realizer/error/missing_content_type_header.rb,
lib/jsonapi/realizer/error/malformed_data_root_property.rb,
lib/jsonapi/realizer/error/include_without_data_property.rb,
lib/jsonapi/realizer/error/missing_type_resource_property.rb

Defined Under Namespace

Modules: Resource Classes: Action, Adapter, Error

Constant Summary collapse

VERSION =
"4.0.1"

Class Method Summary collapse

Class Method Details

.create(payload, headers:, scope: nil) ⇒ Object



36
37
38
# File 'lib/jsonapi/realizer.rb', line 36

def self.create(payload, headers:, scope: nil)
  enact(Action::Create.new(payload: payload, headers: headers, scope: scope))
end

.index(payload, headers:, type:, scope: nil) ⇒ Object



48
49
50
# File 'lib/jsonapi/realizer.rb', line 48

def self.index(payload, headers:, type:, scope: nil)
  enact(Action::Index.new(payload: payload, headers: headers, type: type, scope: scope))
end

.register(resource_class:, model_class:, adapter:, type:) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/jsonapi/realizer.rb', line 16

def self.register(resource_class:, model_class:, adapter:, type:)
  @mapping ||= Set.new
  @mapping << OpenStruct.new({
    resource_class: resource_class,
    model_class: model_class,
    adapter: adapter,
    type: type.dasherize,
    attributes: OpenStruct.new({}),
    relationships: OpenStruct.new({})
   })
end

.resource_mappingObject



28
29
30
# File 'lib/jsonapi/realizer.rb', line 28

def self.resource_mapping
  @mapping.index_by(&:resource_class)
end

.show(payload, headers:, type:, scope: nil) ⇒ Object



44
45
46
# File 'lib/jsonapi/realizer.rb', line 44

def self.show(payload, headers:, type:, scope: nil)
  enact(Action::Show.new(payload: payload, headers: headers, type: type, scope: scope))
end

.type_mappingObject



32
33
34
# File 'lib/jsonapi/realizer.rb', line 32

def self.type_mapping
  @mapping.index_by(&:type)
end

.update(payload, headers:, scope: nil) ⇒ Object



40
41
42
# File 'lib/jsonapi/realizer.rb', line 40

def self.update(payload, headers:, scope: nil)
  enact(Action::Update.new(payload: payload, headers: headers, scope: scope))
end