jsonapi-resources 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ee2eb1bf17d93331630573c19708775eb1bb5379
         | 
| 4 | 
            +
              data.tar.gz: 0e230d825047eebc973ad2b3c16a10d47c0ee54a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7ef3d97d1b89d5ceb0e585eddc32c7b69dfd6e3b60b96f4eb401634d4a1f32e65e7f75d11baa3f1a5adc1c66e2aa4a729b18f014bb084a775e9300a9e3ae933f
         | 
| 7 | 
            +
              data.tar.gz: 7328baee52874231838085886f9d5280932c0f3950a93a9f001d9bdaf341c4a68000a1ae05700b60c7b429f283e53d6863f9bf7d811c9065aa4941a347f36197
         | 
| @@ -16,7 +16,7 @@ class ActiveRecordOperationsProcessor < JSONAPI::OperationsProcessor | |
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 18 | 
             
              def process_operation(operation)
         | 
| 19 | 
            -
                operation.apply | 
| 19 | 
            +
                operation.apply
         | 
| 20 20 | 
             
              rescue ActiveRecord::DeleteRestrictionError => e
         | 
| 21 21 | 
             
                record_locked_error = JSONAPI::Exceptions::RecordLocked.new(e.message)
         | 
| 22 22 | 
             
                return JSONAPI::ErrorsOperationResult.new(record_locked_error.errors[0].code, record_locked_error.errors)
         | 
    
        data/lib/jsonapi/operation.rb
    CHANGED
    
    | @@ -3,12 +3,13 @@ module JSONAPI | |
| 3 3 | 
             
                attr_reader :resource_klass, :options, :transactional
         | 
| 4 4 |  | 
| 5 5 | 
             
                def initialize(resource_klass, options = {})
         | 
| 6 | 
            +
                  @context = options[:context]
         | 
| 6 7 | 
             
                  @resource_klass = resource_klass
         | 
| 7 8 | 
             
                  @options = options
         | 
| 8 9 | 
             
                  @transactional = true
         | 
| 9 10 | 
             
                end
         | 
| 10 11 |  | 
| 11 | 
            -
                def apply | 
| 12 | 
            +
                def apply
         | 
| 12 13 | 
             
                end
         | 
| 13 14 | 
             
              end
         | 
| 14 15 |  | 
| @@ -20,7 +21,8 @@ module JSONAPI | |
| 20 21 | 
             
                  @include_directives = options[:include_directives]
         | 
| 21 22 | 
             
                  @sort_criteria = options.fetch(:sort_criteria, [])
         | 
| 22 23 | 
             
                  @paginator = options[:paginator]
         | 
| 23 | 
            -
                   | 
| 24 | 
            +
                  @transactional = false
         | 
| 25 | 
            +
                  super(resource_klass, options)
         | 
| 24 26 | 
             
                end
         | 
| 25 27 |  | 
| 26 28 | 
             
                def record_count
         | 
| @@ -39,9 +41,9 @@ module JSONAPI | |
| 39 41 | 
             
                  end
         | 
| 40 42 | 
             
                end
         | 
| 41 43 |  | 
| 42 | 
            -
                def apply | 
| 43 | 
            -
                  resource_records = @resource_klass.find(@resource_klass.verify_filters(@filters, context),
         | 
| 44 | 
            -
                                                         context: context,
         | 
| 44 | 
            +
                def apply
         | 
| 45 | 
            +
                  resource_records = @resource_klass.find(@resource_klass.verify_filters(@filters, @context),
         | 
| 46 | 
            +
                                                         context: @context,
         | 
| 45 47 | 
             
                                                         include_directives: @include_directives,
         | 
| 46 48 | 
             
                                                         sort_criteria: @sort_criteria,
         | 
| 47 49 | 
             
                                                         paginator: @paginator)
         | 
| @@ -74,11 +76,11 @@ module JSONAPI | |
| 74 76 | 
             
                  super(resource_klass, options)
         | 
| 75 77 | 
             
                end
         | 
| 76 78 |  | 
| 77 | 
            -
                def apply | 
| 78 | 
            -
                  key = @resource_klass.verify_key(@id, context)
         | 
| 79 | 
            +
                def apply
         | 
| 80 | 
            +
                  key = @resource_klass.verify_key(@id, @context)
         | 
| 79 81 |  | 
| 80 82 | 
             
                  resource_record = resource_klass.find_by_key(key,
         | 
| 81 | 
            -
                                                               context: context,
         | 
| 83 | 
            +
                                                               context: @context,
         | 
| 82 84 | 
             
                                                               include_directives: @include_directives)
         | 
| 83 85 |  | 
| 84 86 | 
             
                  return JSONAPI::ResourceOperationResult.new(:ok, resource_record)
         | 
| @@ -98,8 +100,8 @@ module JSONAPI | |
| 98 100 | 
             
                  super(resource_klass, options)
         | 
| 99 101 | 
             
                end
         | 
| 100 102 |  | 
| 101 | 
            -
                def apply | 
| 102 | 
            -
                  parent_resource = resource_klass.find_by_key(@parent_key, context: context)
         | 
| 103 | 
            +
                def apply
         | 
| 104 | 
            +
                  parent_resource = resource_klass.find_by_key(@parent_key, context: @context)
         | 
| 103 105 |  | 
| 104 106 | 
             
                  return JSONAPI::LinksObjectOperationResult.new(:ok,
         | 
| 105 107 | 
             
                                                                 parent_resource,
         | 
| @@ -121,8 +123,8 @@ module JSONAPI | |
| 121 123 | 
             
                  super(resource_klass, options)
         | 
| 122 124 | 
             
                end
         | 
| 123 125 |  | 
| 124 | 
            -
                def apply | 
| 125 | 
            -
                  source_resource = @source_klass.find_by_key(@source_id, context: context)
         | 
| 126 | 
            +
                def apply
         | 
| 127 | 
            +
                  source_resource = @source_klass.find_by_key(@source_id, context: @context)
         | 
| 126 128 |  | 
| 127 129 | 
             
                  related_resource = source_resource.send(@association_type)
         | 
| 128 130 |  | 
| @@ -147,8 +149,8 @@ module JSONAPI | |
| 147 149 | 
             
                  super(resource_klass, options)
         | 
| 148 150 | 
             
                end
         | 
| 149 151 |  | 
| 150 | 
            -
                def apply | 
| 151 | 
            -
                  source_resource = @source_klass.find_by_key(@source_id, context: context)
         | 
| 152 | 
            +
                def apply
         | 
| 153 | 
            +
                  source_resource = @source_klass.find_by_key(@source_id, context: @context)
         | 
| 152 154 |  | 
| 153 155 | 
             
                  related_resource = source_resource.send(@association_type,
         | 
| 154 156 | 
             
                                                          {
         | 
| @@ -172,8 +174,8 @@ module JSONAPI | |
| 172 174 | 
             
                  super(resource_klass, options)
         | 
| 173 175 | 
             
                end
         | 
| 174 176 |  | 
| 175 | 
            -
                def apply | 
| 176 | 
            -
                  resource = @resource_klass.create(context)
         | 
| 177 | 
            +
                def apply
         | 
| 178 | 
            +
                  resource = @resource_klass.create(@context)
         | 
| 177 179 | 
             
                  result = resource.replace_fields(@data)
         | 
| 178 180 |  | 
| 179 181 | 
             
                  return JSONAPI::ResourceOperationResult.new((result == :completed ? :created : :accepted), resource)
         | 
| @@ -190,8 +192,8 @@ module JSONAPI | |
| 190 192 | 
             
                  super(resource_klass, options)
         | 
| 191 193 | 
             
                end
         | 
| 192 194 |  | 
| 193 | 
            -
                def apply | 
| 194 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 195 | 
            +
                def apply
         | 
| 196 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 195 197 | 
             
                  result = resource.remove
         | 
| 196 198 |  | 
| 197 199 | 
             
                  return JSONAPI::OperationResult.new(result == :completed ? :no_content : :accepted)
         | 
| @@ -210,8 +212,8 @@ module JSONAPI | |
| 210 212 | 
             
                  super(resource_klass, options)
         | 
| 211 213 | 
             
                end
         | 
| 212 214 |  | 
| 213 | 
            -
                def apply | 
| 214 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 215 | 
            +
                def apply
         | 
| 216 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 215 217 | 
             
                  result = resource.replace_fields(data)
         | 
| 216 218 |  | 
| 217 219 | 
             
                  return JSONAPI::ResourceOperationResult.new(result == :completed ? :ok : :accepted, resource)
         | 
| @@ -228,8 +230,8 @@ module JSONAPI | |
| 228 230 | 
             
                  super(resource_klass, options)
         | 
| 229 231 | 
             
                end
         | 
| 230 232 |  | 
| 231 | 
            -
                def apply | 
| 232 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 233 | 
            +
                def apply
         | 
| 234 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 233 235 | 
             
                  result = resource.replace_has_one_link(@association_type, @key_value)
         | 
| 234 236 |  | 
| 235 237 | 
             
                  return JSONAPI::OperationResult.new(result == :completed ? :no_content : :accepted)
         | 
| @@ -246,8 +248,8 @@ module JSONAPI | |
| 246 248 | 
             
                  super(resource_klass, options)
         | 
| 247 249 | 
             
                end
         | 
| 248 250 |  | 
| 249 | 
            -
                def apply | 
| 250 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 251 | 
            +
                def apply
         | 
| 252 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 251 253 | 
             
                  result = resource.create_has_many_links(@association_type, @data)
         | 
| 252 254 |  | 
| 253 255 | 
             
                  return JSONAPI::OperationResult.new(result == :completed ? :no_content : :accepted)
         | 
| @@ -264,8 +266,8 @@ module JSONAPI | |
| 264 266 | 
             
                  super(resource_klass, options)
         | 
| 265 267 | 
             
                end
         | 
| 266 268 |  | 
| 267 | 
            -
                def apply | 
| 268 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 269 | 
            +
                def apply
         | 
| 270 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 269 271 | 
             
                  result = resource.replace_has_many_links(@association_type, @data)
         | 
| 270 272 |  | 
| 271 273 | 
             
                  return JSONAPI::OperationResult.new(result == :completed ? :no_content : :accepted)
         | 
| @@ -282,8 +284,8 @@ module JSONAPI | |
| 282 284 | 
             
                  super(resource_klass, options)
         | 
| 283 285 | 
             
                end
         | 
| 284 286 |  | 
| 285 | 
            -
                def apply | 
| 286 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 287 | 
            +
                def apply
         | 
| 288 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 287 289 | 
             
                  result = resource.remove_has_many_link(@association_type, @associated_key)
         | 
| 288 290 |  | 
| 289 291 | 
             
                  return JSONAPI::OperationResult.new(result == :completed ? :no_content : :accepted)
         | 
| @@ -299,8 +301,8 @@ module JSONAPI | |
| 299 301 | 
             
                  super(resource_klass, options)
         | 
| 300 302 | 
             
                end
         | 
| 301 303 |  | 
| 302 | 
            -
                def apply | 
| 303 | 
            -
                  resource = @resource_klass.find_by_key(@resource_id, context: context)
         | 
| 304 | 
            +
                def apply
         | 
| 305 | 
            +
                  resource = @resource_klass.find_by_key(@resource_id, context: @context)
         | 
| 304 306 | 
             
                  result = resource.remove_has_one_link(@association_type)
         | 
| 305 307 |  | 
| 306 308 | 
             
                  return JSONAPI::OperationResult.new(result == :completed ? :no_content : :accepted)
         | 
| @@ -27,7 +27,6 @@ module JSONAPI | |
| 27 27 | 
             
                def process(request)
         | 
| 28 28 | 
             
                  @results = JSONAPI::OperationResults.new
         | 
| 29 29 | 
             
                  @request = request
         | 
| 30 | 
            -
                  @context = request.context
         | 
| 31 30 | 
             
                  @operations = request.operations
         | 
| 32 31 |  | 
| 33 32 | 
             
                  # Use transactions if more than one operation and if one of the operations can be transactional
         | 
| @@ -82,7 +81,7 @@ module JSONAPI | |
| 82 81 | 
             
                end
         | 
| 83 82 |  | 
| 84 83 | 
             
                def process_operation(operation)
         | 
| 85 | 
            -
                  operation.apply | 
| 84 | 
            +
                  operation.apply
         | 
| 86 85 | 
             
                end
         | 
| 87 86 | 
             
              end
         | 
| 88 87 | 
             
            end
         | 
    
        data/lib/jsonapi/request.rb
    CHANGED
    
    | @@ -264,6 +264,7 @@ module JSONAPI | |
| 264 264 | 
             
                  @operations.push JSONAPI::FindOperation.new(
         | 
| 265 265 | 
             
                                     @resource_klass,
         | 
| 266 266 | 
             
                                     {
         | 
| 267 | 
            +
                                       context: @context,
         | 
| 267 268 | 
             
                                       filters: @filters,
         | 
| 268 269 | 
             
                                       include_directives: @include_directives,
         | 
| 269 270 | 
             
                                       sort_criteria: @sort_criteria,
         | 
| @@ -276,6 +277,7 @@ module JSONAPI | |
| 276 277 | 
             
                  @operations.push JSONAPI::ShowOperation.new(
         | 
| 277 278 | 
             
                                     @resource_klass,
         | 
| 278 279 | 
             
                                     {
         | 
| 280 | 
            +
                                       context: @context,
         | 
| 279 281 | 
             
                                       id: @id,
         | 
| 280 282 | 
             
                                       include_directives: @include_directives
         | 
| 281 283 | 
             
                                     }
         | 
| @@ -286,6 +288,7 @@ module JSONAPI | |
| 286 288 | 
             
                  @operations.push JSONAPI::ShowAssociationOperation.new(
         | 
| 287 289 | 
             
                                     @resource_klass,
         | 
| 288 290 | 
             
                                     {
         | 
| 291 | 
            +
                                       context: @context,
         | 
| 289 292 | 
             
                                       association_type: association_type,
         | 
| 290 293 | 
             
                                       parent_key: @resource_klass.verify_key(parent_key)
         | 
| 291 294 | 
             
                                     }
         | 
| @@ -296,6 +299,7 @@ module JSONAPI | |
| 296 299 | 
             
                  @operations.push JSONAPI::ShowRelatedResourceOperation.new(
         | 
| 297 300 | 
             
                                     @resource_klass,
         | 
| 298 301 | 
             
                                     {
         | 
| 302 | 
            +
                                       context: @context,
         | 
| 299 303 | 
             
                                       association_type: association_type,
         | 
| 300 304 | 
             
                                       source_klass: @source_klass,
         | 
| 301 305 | 
             
                                       source_id: @source_id
         | 
| @@ -307,6 +311,7 @@ module JSONAPI | |
| 307 311 | 
             
                  @operations.push JSONAPI::ShowRelatedResourcesOperation.new(
         | 
| 308 312 | 
             
                                     @resource_klass,
         | 
| 309 313 | 
             
                                     {
         | 
| 314 | 
            +
                                       context: @context,
         | 
| 310 315 | 
             
                                       association_type: association_type,
         | 
| 311 316 | 
             
                                       source_klass: @source_klass,
         | 
| 312 317 | 
             
                                       source_id: @source_id,
         | 
| @@ -336,6 +341,7 @@ module JSONAPI | |
| 336 341 | 
             
                    @operations.push JSONAPI::CreateResourceOperation.new(
         | 
| 337 342 | 
             
                                       @resource_klass,
         | 
| 338 343 | 
             
                                       {
         | 
| 344 | 
            +
                                         context: @context,
         | 
| 339 345 | 
             
                                         data: data
         | 
| 340 346 | 
             
                                       }
         | 
| 341 347 | 
             
                                     )
         | 
| @@ -519,6 +525,7 @@ module JSONAPI | |
| 519 525 | 
             
                    @operations.push JSONAPI::CreateHasManyAssociationOperation.new(
         | 
| 520 526 | 
             
                                       resource_klass,
         | 
| 521 527 | 
             
                                       {
         | 
| 528 | 
            +
                                         context: @context,
         | 
| 522 529 | 
             
                                         resource_id: parent_key,
         | 
| 523 530 | 
             
                                         association_type: association_type,
         | 
| 524 531 | 
             
                                         data: verified_param_set[:has_many].values[0]
         | 
| @@ -537,6 +544,7 @@ module JSONAPI | |
| 537 544 | 
             
                    @operations.push JSONAPI::ReplaceHasOneAssociationOperation.new(
         | 
| 538 545 | 
             
                                       resource_klass,
         | 
| 539 546 | 
             
                                       {
         | 
| 547 | 
            +
                                         context: @context,
         | 
| 540 548 | 
             
                                         resource_id: parent_key,
         | 
| 541 549 | 
             
                                         association_type: association_type,
         | 
| 542 550 | 
             
                                         key_value: verified_param_set[:has_one].values[0]
         | 
| @@ -553,6 +561,7 @@ module JSONAPI | |
| 553 561 | 
             
                    @operations.push JSONAPI::ReplaceHasManyAssociationOperation.new(
         | 
| 554 562 | 
             
                                       resource_klass,
         | 
| 555 563 | 
             
                                       {
         | 
| 564 | 
            +
                                         context: @context,
         | 
| 556 565 | 
             
                                         resource_id: parent_key,
         | 
| 557 566 | 
             
                                         association_type: association_type,
         | 
| 558 567 | 
             
                                         data: verified_param_set[:has_many].values[0]
         | 
| @@ -585,6 +594,7 @@ module JSONAPI | |
| 585 594 | 
             
                  @operations.push JSONAPI::ReplaceFieldsOperation.new(
         | 
| 586 595 | 
             
                                     @resource_klass,
         | 
| 587 596 | 
             
                                     {
         | 
| 597 | 
            +
                                       context: @context,
         | 
| 588 598 | 
             
                                       resource_id: key,
         | 
| 589 599 | 
             
                                       data: parse_params(data, updatable_fields)
         | 
| 590 600 | 
             
                                     }
         | 
| @@ -615,6 +625,7 @@ module JSONAPI | |
| 615 625 | 
             
                    @operations.push JSONAPI::RemoveResourceOperation.new(
         | 
| 616 626 | 
             
                                       @resource_klass,
         | 
| 617 627 | 
             
                                       {
         | 
| 628 | 
            +
                                         context: @context,
         | 
| 618 629 | 
             
                                         resource_id: key
         | 
| 619 630 | 
             
                                       }
         | 
| 620 631 | 
             
                                     )
         | 
| @@ -637,6 +648,7 @@ module JSONAPI | |
| 637 648 | 
             
                      @operations.push JSONAPI::RemoveHasManyAssociationOperation.new(
         | 
| 638 649 | 
             
                                         resource_klass,
         | 
| 639 650 | 
             
                                         {
         | 
| 651 | 
            +
                                           context: @context,
         | 
| 640 652 | 
             
                                           resource_id: parent_key,
         | 
| 641 653 | 
             
                                           association_type: association_type,
         | 
| 642 654 | 
             
                                           associated_key: key
         | 
| @@ -647,6 +659,7 @@ module JSONAPI | |
| 647 659 | 
             
                    @operations.push JSONAPI::RemoveHasOneAssociationOperation.new(
         | 
| 648 660 | 
             
                                       resource_klass,
         | 
| 649 661 | 
             
                                       {
         | 
| 662 | 
            +
                                         context: @context,
         | 
| 650 663 | 
             
                                         resource_id: parent_key,
         | 
| 651 664 | 
             
                                         association_type: association_type
         | 
| 652 665 | 
             
                                       }
         | 
    
        data/lib/jsonapi/resource.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jsonapi-resources
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Dan Gebhardt
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2015-06- | 
| 12 | 
            +
            date: 2015-06-19 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: bundler
         |