@@ -147,9 +147,9 @@ def initialize(resource_klass, options = {})
147147
148148 def apply ( context )
149149 resource = @resource_klass . create ( context )
150- resource . replace_fields ( @data )
150+ result = resource . replace_fields ( @data )
151151
152- return JSONAPI ::ResourceOperationResult . new ( : created, resource )
152+ return JSONAPI ::ResourceOperationResult . new ( ( result == :completed ? : created : :accepted ) , resource )
153153
154154 rescue JSONAPI ::Exceptions ::Error => e
155155 return JSONAPI ::ErrorsOperationResult . new ( e . errors [ 0 ] . code , e . errors )
@@ -165,9 +165,9 @@ def initialize(resource_klass, options = {})
165165
166166 def apply ( context )
167167 resource = @resource_klass . find_by_key ( @resource_id , context : context )
168- resource . remove
168+ result = resource . remove
169169
170- return JSONAPI ::OperationResult . new ( : no_content)
170+ return JSONAPI ::OperationResult . new ( result == :completed ? : no_content : :accepted )
171171
172172 rescue JSONAPI ::Exceptions ::Error => e
173173 return JSONAPI ::ErrorsOperationResult . new ( e . errors [ 0 ] . code , e . errors )
@@ -185,9 +185,9 @@ def initialize(resource_klass, options = {})
185185
186186 def apply ( context )
187187 resource = @resource_klass . find_by_key ( @resource_id , context : context )
188- resource . replace_fields ( data )
188+ result = resource . replace_fields ( data )
189189
190- return JSONAPI ::ResourceOperationResult . new ( :ok , resource )
190+ return JSONAPI ::ResourceOperationResult . new ( result == :completed ? :ok : :accepted , resource )
191191 end
192192 end
193193
@@ -203,9 +203,9 @@ def initialize(resource_klass, options = {})
203203
204204 def apply ( context )
205205 resource = @resource_klass . find_by_key ( @resource_id , context : context )
206- resource . replace_has_one_link ( @association_type , @key_value )
206+ result = resource . replace_has_one_link ( @association_type , @key_value )
207207
208- return JSONAPI ::OperationResult . new ( : no_content)
208+ return JSONAPI ::OperationResult . new ( result == :completed ? : no_content : :accepted )
209209 end
210210 end
211211
@@ -221,9 +221,9 @@ def initialize(resource_klass, options)
221221
222222 def apply ( context )
223223 resource = @resource_klass . find_by_key ( @resource_id , context : context )
224- resource . create_has_many_links ( @association_type , @data )
224+ result = resource . create_has_many_links ( @association_type , @data )
225225
226- return JSONAPI ::OperationResult . new ( : no_content)
226+ return JSONAPI ::OperationResult . new ( result == :completed ? : no_content : :accepted )
227227 end
228228 end
229229
@@ -239,9 +239,9 @@ def initialize(resource_klass, options)
239239
240240 def apply ( context )
241241 resource = @resource_klass . find_by_key ( @resource_id , context : context )
242- resource . replace_has_many_links ( @association_type , @data )
242+ result = resource . replace_has_many_links ( @association_type , @data )
243243
244- return JSONAPI ::OperationResult . new ( : no_content)
244+ return JSONAPI ::OperationResult . new ( result == :completed ? : no_content : :accepted )
245245 end
246246 end
247247
@@ -257,9 +257,9 @@ def initialize(resource_klass, options)
257257
258258 def apply ( context )
259259 resource = @resource_klass . find_by_key ( @resource_id , context : context )
260- resource . remove_has_many_link ( @association_type , @associated_key )
260+ result = resource . remove_has_many_link ( @association_type , @associated_key )
261261
262- return JSONAPI ::OperationResult . new ( : no_content)
262+ return JSONAPI ::OperationResult . new ( result == :completed ? : no_content : :accepted )
263263 end
264264 end
265265
@@ -274,9 +274,9 @@ def initialize(resource_klass, options)
274274
275275 def apply ( context )
276276 resource = @resource_klass . find_by_key ( @resource_id , context : context )
277- resource . remove_has_one_link ( @association_type )
277+ result = resource . remove_has_one_link ( @association_type )
278278
279- return JSONAPI ::OperationResult . new ( : no_content)
279+ return JSONAPI ::OperationResult . new ( result == :completed ? : no_content : :accepted )
280280 end
281281 end
282282end
0 commit comments