Class: JSONAPI::RemoveResourceOperation
- Defined in:
- lib/jsonapi/operation.rb
Instance Attribute Summary collapse
-
#resource_id ⇒ Object
readonly
Returns the value of attribute resource_id.
Attributes inherited from Operation
Instance Method Summary collapse
- #apply(context) ⇒ Object
-
#initialize(resource_klass, resource_id) ⇒ RemoveResourceOperation
constructor
A new instance of RemoveResourceOperation.
Constructor Details
#initialize(resource_klass, resource_id) ⇒ RemoveResourceOperation
Returns a new instance of RemoveResourceOperation.
35 36 37 38 |
# File 'lib/jsonapi/operation.rb', line 35 def initialize(resource_klass, resource_id) @resource_id = resource_id super(resource_klass) end |
Instance Attribute Details
#resource_id ⇒ Object (readonly)
Returns the value of attribute resource_id.
34 35 36 |
# File 'lib/jsonapi/operation.rb', line 34 def resource_id @resource_id end |
Instance Method Details
#apply(context) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/jsonapi/operation.rb', line 40 def apply(context) resource = @resource_klass.find_by_key(@resource_id, context: context) resource.remove return JSONAPI::OperationResult.new(:no_content) rescue ActiveRecord::DeleteRestrictionError => e record_locked_error = JSONAPI::Exceptions::RecordLocked.new(e.) return JSONAPI::OperationResult.new(record_locked_error.errors[0].code, nil, record_locked_error.errors) rescue JSONAPI::Exceptions::Error => e return JSONAPI::OperationResult.new(e.errors[0].code, nil, e.errors) end |