Class: JSONAPI::ShowAssociationOperation

Inherits:
Operation
  • Object
show all
Defined in:
lib/jsonapi/operation.rb

Instance Attribute Summary collapse

Attributes inherited from Operation

#options, #resource_klass, #transactional

Instance Method Summary collapse

Constructor Details

#initialize(resource_klass, options = {}) ⇒ ShowAssociationOperation

Returns a new instance of ShowAssociationOperation.



96
97
98
99
100
101
# File 'lib/jsonapi/operation.rb', line 96

def initialize(resource_klass, options = {})
  @parent_key = options.fetch(:parent_key)
  @association_type = options.fetch(:association_type)
  @transactional = false
  super(resource_klass, options)
end

Instance Attribute Details

#association_typeObject (readonly)

Returns the value of attribute association_type.



94
95
96
# File 'lib/jsonapi/operation.rb', line 94

def association_type
  @association_type
end

#parent_keyObject (readonly)

Returns the value of attribute parent_key.



94
95
96
# File 'lib/jsonapi/operation.rb', line 94

def parent_key
  @parent_key
end

Instance Method Details

#applyObject



103
104
105
106
107
108
109
110
111
112
# File 'lib/jsonapi/operation.rb', line 103

def apply
  parent_resource = resource_klass.find_by_key(@parent_key, context: @context)

  return JSONAPI::LinksObjectOperationResult.new(:ok,
                                                 parent_resource,
                                                 resource_klass._association(@association_type))

rescue JSONAPI::Exceptions::Error => e
  return JSONAPI::ErrorsOperationResult.new(e.errors[0].code, e.errors)
end