solidus_api 3.4.1 → 4.0.0
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 +4 -4
- data/app/controllers/spree/api/customer_returns_controller.rb +0 -8
- data/app/controllers/spree/api/option_values_controller.rb +0 -21
- data/app/controllers/spree/api/shipments_controller.rb +0 -26
- data/app/controllers/spree/api/variants_controller.rb +0 -20
- data/app/helpers/spree/api/api_helpers.rb +0 -5
- data/config/routes.rb +2 -5
- data/lib/spree/api_configuration.rb +1 -1
- data/openapi/solidus-api.oas.yml +0 -311
- data/solidus_api.gemspec +1 -1
- metadata +6 -7
- data/app/controllers/spree/api/resource_controller.rb +0 -102
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 889a03ceedfdc041802ee129c1be2a2aba750d8d6501757f09ecc5cf26da2662
         | 
| 4 | 
            +
              data.tar.gz: 912510a11207bda356602e8bf5d98780b95aaf88b556bfad714c1393392f3ada
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 66890843cd4957ff345aec5ff633b28c5f7224d9171ec027062943ac0cdf2df43db1be12d861c73c5b5a6399330b62b5b70706791f097a09c0046e6ea99c3761
         | 
| 7 | 
            +
              data.tar.gz: 9fd9b5e9c7d8e774f31637e62177662c9fb1c597e1a085ce7192c2b0d52001486a83ce63050fbc9ecb24b71fe2f6a68d6bd440501b8d970f345388e8ef76b484
         | 
| @@ -69,14 +69,6 @@ module Spree | |
| 69 69 | 
             
                    return_items_params = customer_return_attributes.
         | 
| 70 70 | 
             
                      delete(:return_items_attributes)
         | 
| 71 71 |  | 
| 72 | 
            -
                    if return_items_params.is_a? ActionController::Parameters
         | 
| 73 | 
            -
                      return_items_params = return_items_params.values
         | 
| 74 | 
            -
                      Spree::Deprecation.warn(
         | 
| 75 | 
            -
                        "Passing `return_items_attributes` as a hash of hashes is \
         | 
| 76 | 
            -
            deprecated and will be removed in future versions of Solidus."
         | 
| 77 | 
            -
                      )
         | 
| 78 | 
            -
                    end
         | 
| 79 | 
            -
             | 
| 80 72 | 
             
                    @customer_return = CustomerReturn.new(customer_return_attributes)
         | 
| 81 73 |  | 
| 82 74 | 
             
                    @customer_return.return_items = return_items_params.map do |item_params|
         | 
| @@ -13,20 +13,11 @@ module Spree | |
| 13 13 | 
             
                  end
         | 
| 14 14 |  | 
| 15 15 | 
             
                  def show
         | 
| 16 | 
            -
                    warn_if_nested_member_route
         | 
| 17 | 
            -
             | 
| 18 16 | 
             
                    @option_value = scope.find(params[:id])
         | 
| 19 17 | 
             
                    respond_with(@option_value)
         | 
| 20 18 | 
             
                  end
         | 
| 21 19 |  | 
| 22 20 | 
             
                  def create
         | 
| 23 | 
            -
                    Spree::Deprecation.warn <<~MSG unless request.path.include?('/option_types/')
         | 
| 24 | 
            -
                      This route is deprecated, as it'll be no longer possible to create an
         | 
| 25 | 
            -
                      option_value without an associated option_type. Please, use instead:
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                        POST api/option_types/{option_type_id}/option_values
         | 
| 28 | 
            -
                    MSG
         | 
| 29 | 
            -
             | 
| 30 21 | 
             
                    authorize! :create, Spree::OptionValue
         | 
| 31 22 | 
             
                    @option_value = scope.new(option_value_params)
         | 
| 32 23 | 
             
                    if @option_value.save
         | 
| @@ -37,8 +28,6 @@ module Spree | |
| 37 28 | 
             
                  end
         | 
| 38 29 |  | 
| 39 30 | 
             
                  def update
         | 
| 40 | 
            -
                    warn_if_nested_member_route
         | 
| 41 | 
            -
             | 
| 42 31 | 
             
                    @option_value = scope.accessible_by(current_ability, :update).find(params[:id])
         | 
| 43 32 | 
             
                    if @option_value.update(option_value_params)
         | 
| 44 33 | 
             
                      render :show
         | 
| @@ -48,8 +37,6 @@ module Spree | |
| 48 37 | 
             
                  end
         | 
| 49 38 |  | 
| 50 39 | 
             
                  def destroy
         | 
| 51 | 
            -
                    warn_if_nested_member_route
         | 
| 52 | 
            -
             | 
| 53 40 | 
             
                    @option_value = scope.accessible_by(current_ability, :destroy).find(params[:id])
         | 
| 54 41 | 
             
                    @option_value.destroy
         | 
| 55 42 | 
             
                    render plain: nil, status: 204
         | 
| @@ -68,14 +55,6 @@ module Spree | |
| 68 55 | 
             
                  def option_value_params
         | 
| 69 56 | 
             
                    params.require(:option_value).permit(permitted_option_value_attributes)
         | 
| 70 57 | 
             
                  end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                  def warn_if_nested_member_route
         | 
| 73 | 
            -
                    Spree::Deprecation.warn <<~MSG if request.path.include?('/option_types/')
         | 
| 74 | 
            -
                      This route is deprecated. Use shallow version instead:
         | 
| 75 | 
            -
             | 
| 76 | 
            -
                        #{request.method.upcase} api/option_values/:id
         | 
| 77 | 
            -
                    MSG
         | 
| 78 | 
            -
                  end
         | 
| 79 58 | 
             
                end
         | 
| 80 59 | 
             
              end
         | 
| 81 60 | 
             
            end
         | 
| @@ -40,30 +40,8 @@ module Spree | |
| 40 40 |  | 
| 41 41 | 
             
                  def create
         | 
| 42 42 | 
             
                    authorize! :create, Shipment
         | 
| 43 | 
            -
             | 
| 44 43 | 
             
                    @shipment = @order.shipments.create(stock_location_id: params.fetch(:stock_location_id))
         | 
| 45 44 |  | 
| 46 | 
            -
                    if passing_deprecated_params_on_create?
         | 
| 47 | 
            -
                      Spree::Deprecation.warn <<~MSG
         | 
| 48 | 
            -
                      Passing `quantity` or `variant_id` to
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                          POST /api/shipments
         | 
| 51 | 
            -
             | 
| 52 | 
            -
                      is deprecated and won't be allowed anymore starting from Solidus 4.0.
         | 
| 53 | 
            -
                      Instead, create an empty shipment and add items to it subsequently using
         | 
| 54 | 
            -
                      the dedicated endpoint:
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                          PUT /api/shipments/{shipment_number}/add
         | 
| 57 | 
            -
             | 
| 58 | 
            -
                      MSG
         | 
| 59 | 
            -
             | 
| 60 | 
            -
                      quantity = params[:quantity].to_i
         | 
| 61 | 
            -
                      variant = Spree::Variant.unscoped.find(params[:variant_id])
         | 
| 62 | 
            -
                      @order.contents.add(variant, quantity, { shipment: @shipment })
         | 
| 63 | 
            -
                      @shipment.save!
         | 
| 64 | 
            -
                      @shipment.reload
         | 
| 65 | 
            -
                    end
         | 
| 66 | 
            -
             | 
| 67 45 | 
             
                    respond_with(@shipment, default_template: :show)
         | 
| 68 46 | 
             
                  end
         | 
| 69 47 |  | 
| @@ -149,10 +127,6 @@ module Spree | |
| 149 127 | 
             
                    authorize! :create, Shipment
         | 
| 150 128 | 
             
                  end
         | 
| 151 129 |  | 
| 152 | 
            -
                  def passing_deprecated_params_on_create?
         | 
| 153 | 
            -
                    params[:variant_id] || params[:quantity]
         | 
| 154 | 
            -
                  end
         | 
| 155 | 
            -
             | 
| 156 130 | 
             
                  def find_order_on_create
         | 
| 157 131 | 
             
                    @order = Spree::Order.find_by!(number: params[:shipment][:order_id])
         | 
| 158 132 | 
             
                    authorize! :show, @order
         | 
| @@ -6,12 +6,6 @@ module Spree | |
| 6 6 | 
             
                  before_action :product
         | 
| 7 7 |  | 
| 8 8 | 
             
                  def create
         | 
| 9 | 
            -
                    Spree::Deprecation.warn <<~MSG unless request.path.include?('/products/')
         | 
| 10 | 
            -
                      This route is deprecated. Use the route nested within the product resource:
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                        POST api/products/{product_id}/variants
         | 
| 13 | 
            -
                    MSG
         | 
| 14 | 
            -
             | 
| 15 9 | 
             
                    authorize! :create, Variant
         | 
| 16 10 | 
             
                    @variant = scope.new(variant_params)
         | 
| 17 11 | 
             
                    if @variant.save
         | 
| @@ -22,8 +16,6 @@ module Spree | |
| 22 16 | 
             
                  end
         | 
| 23 17 |  | 
| 24 18 | 
             
                  def destroy
         | 
| 25 | 
            -
                    warn_if_nested_member_route
         | 
| 26 | 
            -
             | 
| 27 19 | 
             
                    @variant = scope.accessible_by(current_ability, :destroy).find(params[:id])
         | 
| 28 20 | 
             
                    @variant.discard
         | 
| 29 21 | 
             
                    respond_with(@variant, status: 204)
         | 
| @@ -50,16 +42,12 @@ module Spree | |
| 50 42 | 
             
                  end
         | 
| 51 43 |  | 
| 52 44 | 
             
                  def show
         | 
| 53 | 
            -
                    warn_if_nested_member_route
         | 
| 54 | 
            -
             | 
| 55 45 | 
             
                    @variant = scope.includes(include_list)
         | 
| 56 46 | 
             
                      .find(params[:id])
         | 
| 57 47 | 
             
                    respond_with(@variant)
         | 
| 58 48 | 
             
                  end
         | 
| 59 49 |  | 
| 60 50 | 
             
                  def update
         | 
| 61 | 
            -
                    warn_if_nested_member_route
         | 
| 62 | 
            -
             | 
| 63 51 | 
             
                    @variant = scope.accessible_by(current_ability, :update).find(params[:id])
         | 
| 64 52 | 
             
                    if @variant.update(variant_params)
         | 
| 65 53 | 
             
                      respond_with(@variant, status: 200, default_template: :show)
         | 
| @@ -70,14 +58,6 @@ module Spree | |
| 70 58 |  | 
| 71 59 | 
             
                  private
         | 
| 72 60 |  | 
| 73 | 
            -
                  def warn_if_nested_member_route
         | 
| 74 | 
            -
                    Spree::Deprecation.warn <<~MSG if request.path.include?('/products/')
         | 
| 75 | 
            -
                      This route is deprecated. Use shallow version instead:
         | 
| 76 | 
            -
             | 
| 77 | 
            -
                        #{request.method.upcase} api/variants/:id
         | 
| 78 | 
            -
                    MSG
         | 
| 79 | 
            -
                  end
         | 
| 80 | 
            -
             | 
| 81 61 | 
             
                  def product
         | 
| 82 62 | 
             
                    @product ||= Spree::Product.accessible_by(current_ability, :show).friendly.find(params[:product_id]) if params[:product_id]
         | 
| 83 63 | 
             
                  end
         | 
| @@ -41,11 +41,6 @@ module Spree | |
| 41 41 | 
             
                    define_method attribute do
         | 
| 42 42 | 
             
                      Spree::Api::Config.send(attribute)
         | 
| 43 43 | 
             
                    end
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                    define_singleton_method attribute do
         | 
| 46 | 
            -
                      Spree::Deprecation.warn("Please use Spree::Api::Config::#{attribute} instead.")
         | 
| 47 | 
            -
                      Spree::Api::Config.send(attribute)
         | 
| 48 | 
            -
                    end
         | 
| 49 44 | 
             
                  end
         | 
| 50 45 |  | 
| 51 46 | 
             
                  def required_fields_for(model)
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -54,12 +54,9 @@ Spree::Core::Engine.routes.draw do | |
| 54 54 | 
             
                end
         | 
| 55 55 |  | 
| 56 56 | 
             
                resources :option_types do
         | 
| 57 | 
            -
                   | 
| 58 | 
            -
                  resources :option_values
         | 
| 57 | 
            +
                  resources :option_values, shallow: true
         | 
| 59 58 | 
             
                end
         | 
| 60 | 
            -
                 | 
| 61 | 
            -
                # within option_types
         | 
| 62 | 
            -
                resources :option_values
         | 
| 59 | 
            +
                resources :option_values, only: :index
         | 
| 63 60 |  | 
| 64 61 | 
             
                get '/orders/mine', to: 'orders#mine', as: 'my_orders'
         | 
| 65 62 | 
             
                get "/orders/current", to: "orders#current", as: "current_order"
         | 
| @@ -114,7 +114,7 @@ module Spree | |
| 114 114 |  | 
| 115 115 | 
             
                preference :promotion_attributes, :array, default: [
         | 
| 116 116 | 
             
                  :id, :name, :description, :expires_at, :starts_at, :type, :usage_limit,
         | 
| 117 | 
            -
                  : | 
| 117 | 
            +
                  :advertise, :path
         | 
| 118 118 | 
             
                ]
         | 
| 119 119 |  | 
| 120 120 | 
             
                preference :store_attributes, :array, default: [
         | 
    
        data/openapi/solidus-api.oas.yml
    CHANGED
    
    | @@ -667,121 +667,6 @@ paths: | |
| 667 667 | 
             
                          properties:
         | 
| 668 668 | 
             
                            image:
         | 
| 669 669 | 
             
                              $ref: '#/components/schemas/image-input'
         | 
| 670 | 
            -
              '/products/{product_id}/variants/{id}':
         | 
| 671 | 
            -
                get:
         | 
| 672 | 
            -
                  responses:
         | 
| 673 | 
            -
                    '200':
         | 
| 674 | 
            -
                      description: ''
         | 
| 675 | 
            -
                      content:
         | 
| 676 | 
            -
                        application/json:
         | 
| 677 | 
            -
                          schema:
         | 
| 678 | 
            -
                            $ref: '#/components/schemas/variant'
         | 
| 679 | 
            -
                    '401':
         | 
| 680 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 681 | 
            -
                    '404':
         | 
| 682 | 
            -
                      $ref: '#/components/responses/not-found'
         | 
| 683 | 
            -
                  summary: Get product variant
         | 
| 684 | 
            -
                  description: |-
         | 
| 685 | 
            -
                    **Deprecation Warning**: Use [shallow version](/docs/solidus/87df124706c5f-get-variant) instead
         | 
| 686 | 
            -
             | 
| 687 | 
            -
                    Retrieves a product's variant.
         | 
| 688 | 
            -
                  operationId: get-product-variant
         | 
| 689 | 
            -
                  tags:
         | 
| 690 | 
            -
                    - Variants
         | 
| 691 | 
            -
                  security:
         | 
| 692 | 
            -
                    - api-key: []
         | 
| 693 | 
            -
                parameters:
         | 
| 694 | 
            -
                  - name: product_id
         | 
| 695 | 
            -
                    in: path
         | 
| 696 | 
            -
                    required: true
         | 
| 697 | 
            -
                    schema:
         | 
| 698 | 
            -
                      type: string
         | 
| 699 | 
            -
                  - name: id
         | 
| 700 | 
            -
                    in: path
         | 
| 701 | 
            -
                    required: true
         | 
| 702 | 
            -
                    schema:
         | 
| 703 | 
            -
                      type: string
         | 
| 704 | 
            -
                delete:
         | 
| 705 | 
            -
                  responses:
         | 
| 706 | 
            -
                    '204':
         | 
| 707 | 
            -
                      description: ''
         | 
| 708 | 
            -
                      content:
         | 
| 709 | 
            -
                        application/json:
         | 
| 710 | 
            -
                          schema:
         | 
| 711 | 
            -
                            $ref: '#/components/schemas/variant'
         | 
| 712 | 
            -
                    '401':
         | 
| 713 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 714 | 
            -
                    '404':
         | 
| 715 | 
            -
                      $ref: '#/components/responses/not-found'
         | 
| 716 | 
            -
                    '422':
         | 
| 717 | 
            -
                      $ref: '#/components/responses/delete-restriction'
         | 
| 718 | 
            -
                  summary: Delete product variant
         | 
| 719 | 
            -
                  description: |-
         | 
| 720 | 
            -
                    **Deprecation Warning**: Use [shallow version](/docs/solidus/82ccaada99139-delete-variant) instead
         | 
| 721 | 
            -
             | 
| 722 | 
            -
                    Deletes a product's variant.
         | 
| 723 | 
            -
                  operationId: delete-product-variant
         | 
| 724 | 
            -
                  tags:
         | 
| 725 | 
            -
                    - Variants
         | 
| 726 | 
            -
                  security:
         | 
| 727 | 
            -
                    - api-key: []
         | 
| 728 | 
            -
                put:
         | 
| 729 | 
            -
                  responses:
         | 
| 730 | 
            -
                    '200':
         | 
| 731 | 
            -
                      description: ''
         | 
| 732 | 
            -
                      content:
         | 
| 733 | 
            -
                        application/json:
         | 
| 734 | 
            -
                          schema:
         | 
| 735 | 
            -
                            $ref: '#/components/schemas/variant'
         | 
| 736 | 
            -
                    '401':
         | 
| 737 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 738 | 
            -
                    '404':
         | 
| 739 | 
            -
                      $ref: '#/components/responses/not-found'
         | 
| 740 | 
            -
                    '422':
         | 
| 741 | 
            -
                      $ref: '#/components/responses/unprocessable-entity'
         | 
| 742 | 
            -
                  summary: Update product variant
         | 
| 743 | 
            -
                  description: |-
         | 
| 744 | 
            -
                    **Deprecation Warning**: Use [shallow version](/docs/solidus/ce338b5f3b940-update-variant) instead
         | 
| 745 | 
            -
             | 
| 746 | 
            -
                    Updates a product's variant.
         | 
| 747 | 
            -
                  operationId: update-product-variant
         | 
| 748 | 
            -
                  tags:
         | 
| 749 | 
            -
                    - Variants
         | 
| 750 | 
            -
                  security:
         | 
| 751 | 
            -
                    - api-key: []
         | 
| 752 | 
            -
                  requestBody:
         | 
| 753 | 
            -
                    content:
         | 
| 754 | 
            -
                      application/json:
         | 
| 755 | 
            -
                        schema:
         | 
| 756 | 
            -
                          type: object
         | 
| 757 | 
            -
                          properties:
         | 
| 758 | 
            -
                            variant:
         | 
| 759 | 
            -
                              $ref: '#/components/schemas/variant-input'
         | 
| 760 | 
            -
                        examples:
         | 
| 761 | 
            -
                          Example with Option Value Ids:
         | 
| 762 | 
            -
                            value:
         | 
| 763 | 
            -
                              variant:
         | 
| 764 | 
            -
                                price: '11.22'
         | 
| 765 | 
            -
                                cost_price: '9'
         | 
| 766 | 
            -
                                position: 1
         | 
| 767 | 
            -
                                track_inventory: true
         | 
| 768 | 
            -
                                sku: AWSOME-1122
         | 
| 769 | 
            -
                                cost_currency: USD
         | 
| 770 | 
            -
                                option_value_ids:
         | 
| 771 | 
            -
                                  - 1
         | 
| 772 | 
            -
                                  - 2
         | 
| 773 | 
            -
                          Example with Option Value Text:
         | 
| 774 | 
            -
                            value:
         | 
| 775 | 
            -
                              variant:
         | 
| 776 | 
            -
                                price: '11.22'
         | 
| 777 | 
            -
                                cost_price: '9'
         | 
| 778 | 
            -
                                position: 1
         | 
| 779 | 
            -
                                track_inventory: true
         | 
| 780 | 
            -
                                sku: AWSOME-1122
         | 
| 781 | 
            -
                                cost_currency: USD
         | 
| 782 | 
            -
                                options:
         | 
| 783 | 
            -
                                  name: Color
         | 
| 784 | 
            -
                                  value: White
         | 
| 785 670 | 
             
              /states:
         | 
| 786 671 | 
             
                get:
         | 
| 787 672 | 
             
                  responses:
         | 
| @@ -852,65 +737,6 @@ paths: | |
| 852 737 | 
             
                    - $ref: '#/components/parameters/q'
         | 
| 853 738 | 
             
                  security:
         | 
| 854 739 | 
             
                    - api-key: []
         | 
| 855 | 
            -
                post:
         | 
| 856 | 
            -
                  responses:
         | 
| 857 | 
            -
                    '200':
         | 
| 858 | 
            -
                      description: ''
         | 
| 859 | 
            -
                      content:
         | 
| 860 | 
            -
                        application/json:
         | 
| 861 | 
            -
                          schema:
         | 
| 862 | 
            -
                            $ref: '#/components/schemas/variant'
         | 
| 863 | 
            -
                    '401':
         | 
| 864 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 865 | 
            -
                    '422':
         | 
| 866 | 
            -
                      $ref: '#/components/responses/unprocessable-entity'
         | 
| 867 | 
            -
                  summary: Create variant
         | 
| 868 | 
            -
                  description: |-
         | 
| 869 | 
            -
                    **Deprecation Warning**: Use [nested version](/docs/solidus/681aa6cb75b1e-create-product-variant) instead
         | 
| 870 | 
            -
             | 
| 871 | 
            -
                    Creates a variant. Only users with `can :create, Variant` permissions can perform this action.
         | 
| 872 | 
            -
                  operationId: create-variant
         | 
| 873 | 
            -
                  tags:
         | 
| 874 | 
            -
                    - Variants
         | 
| 875 | 
            -
                  security:
         | 
| 876 | 
            -
                    - api-key: []
         | 
| 877 | 
            -
                  requestBody:
         | 
| 878 | 
            -
                    content:
         | 
| 879 | 
            -
                      application/json:
         | 
| 880 | 
            -
                        schema:
         | 
| 881 | 
            -
                          type: object
         | 
| 882 | 
            -
                          properties:
         | 
| 883 | 
            -
                            product_id:
         | 
| 884 | 
            -
                              type: integer
         | 
| 885 | 
            -
                            variant:
         | 
| 886 | 
            -
                              $ref: '#/components/schemas/variant-input'
         | 
| 887 | 
            -
                        examples:
         | 
| 888 | 
            -
                          Example with Option Value Ids:
         | 
| 889 | 
            -
                            value:
         | 
| 890 | 
            -
                              product_id: 1
         | 
| 891 | 
            -
                              variant:
         | 
| 892 | 
            -
                                price: '11.22'
         | 
| 893 | 
            -
                                cost_price: '9'
         | 
| 894 | 
            -
                                position: 1
         | 
| 895 | 
            -
                                track_inventory: true
         | 
| 896 | 
            -
                                sku: AWSOME-1122
         | 
| 897 | 
            -
                                cost_currency: USD
         | 
| 898 | 
            -
                                option_value_ids:
         | 
| 899 | 
            -
                                  - 1
         | 
| 900 | 
            -
                                  - 2
         | 
| 901 | 
            -
                          Example with Option Value Text:
         | 
| 902 | 
            -
                            value:
         | 
| 903 | 
            -
                              product_id: 1
         | 
| 904 | 
            -
                              variant:
         | 
| 905 | 
            -
                                price: '11.22'
         | 
| 906 | 
            -
                                cost_price: '9'
         | 
| 907 | 
            -
                                position: 1
         | 
| 908 | 
            -
                                track_inventory: true
         | 
| 909 | 
            -
                                sku: AWSOME-1122
         | 
| 910 | 
            -
                                cost_currency: USD
         | 
| 911 | 
            -
                                options:
         | 
| 912 | 
            -
                                  name: Color
         | 
| 913 | 
            -
                                  value: White
         | 
| 914 740 | 
             
              '/variants/{id}':
         | 
| 915 741 | 
             
                get:
         | 
| 916 742 | 
             
                  responses:
         | 
| @@ -2541,38 +2367,6 @@ paths: | |
| 2541 2367 | 
             
                    - Option values
         | 
| 2542 2368 | 
             
                  security:
         | 
| 2543 2369 | 
             
                    - api-key: []
         | 
| 2544 | 
            -
                post:
         | 
| 2545 | 
            -
                  responses:
         | 
| 2546 | 
            -
                    '200':
         | 
| 2547 | 
            -
                      description: ''
         | 
| 2548 | 
            -
                      content:
         | 
| 2549 | 
            -
                        application/json:
         | 
| 2550 | 
            -
                          schema:
         | 
| 2551 | 
            -
                            $ref: '#/components/schemas/option-value'
         | 
| 2552 | 
            -
                    '401':
         | 
| 2553 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 2554 | 
            -
                    '422':
         | 
| 2555 | 
            -
                      $ref: '#/components/responses/unprocessable-entity'
         | 
| 2556 | 
            -
                  summary: Create option value
         | 
| 2557 | 
            -
                  description: |-
         | 
| 2558 | 
            -
                    **Deprecation Warning**: Use [nested version](/docs/solidus/810154673c613-create-option-type-value) instead
         | 
| 2559 | 
            -
             | 
| 2560 | 
            -
                    Creates an option value.
         | 
| 2561 | 
            -
             | 
| 2562 | 
            -
                    Only users with the `create` permission on `Spree::OptionValue` can perform this action.
         | 
| 2563 | 
            -
                  operationId: create-option-value
         | 
| 2564 | 
            -
                  tags:
         | 
| 2565 | 
            -
                    - Option values
         | 
| 2566 | 
            -
                  security:
         | 
| 2567 | 
            -
                    - api-key: []
         | 
| 2568 | 
            -
                  requestBody:
         | 
| 2569 | 
            -
                    content:
         | 
| 2570 | 
            -
                      application/json:
         | 
| 2571 | 
            -
                        schema:
         | 
| 2572 | 
            -
                          type: object
         | 
| 2573 | 
            -
                          properties:
         | 
| 2574 | 
            -
                            option_value:
         | 
| 2575 | 
            -
                              $ref: '#/components/schemas/option-value-input'
         | 
| 2576 2370 | 
             
              '/option_values/{id}':
         | 
| 2577 2371 | 
             
                get:
         | 
| 2578 2372 | 
             
                  responses:
         | 
| @@ -2715,99 +2509,6 @@ paths: | |
| 2715 2509 | 
             
                          properties:
         | 
| 2716 2510 | 
             
                            option_value:
         | 
| 2717 2511 | 
             
                              $ref: '#/components/schemas/option-value-input'
         | 
| 2718 | 
            -
              '/option_types/{option_type_id}/option_values/{id}':
         | 
| 2719 | 
            -
                get:
         | 
| 2720 | 
            -
                  responses:
         | 
| 2721 | 
            -
                    '200':
         | 
| 2722 | 
            -
                      description: ''
         | 
| 2723 | 
            -
                      content:
         | 
| 2724 | 
            -
                        application/json:
         | 
| 2725 | 
            -
                          schema: {}
         | 
| 2726 | 
            -
                    '401':
         | 
| 2727 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 2728 | 
            -
                    '404':
         | 
| 2729 | 
            -
                      $ref: '#/components/responses/not-found'
         | 
| 2730 | 
            -
                  summary: Get option type value
         | 
| 2731 | 
            -
                  description: |-
         | 
| 2732 | 
            -
                    **Deprecation Warning**: Use [shallow version](/docs/solidus/cbbc403ed08a3-get-option-value) instead
         | 
| 2733 | 
            -
             | 
| 2734 | 
            -
                    Retrieves an option type's value.
         | 
| 2735 | 
            -
                  operationId: get-option-type-value
         | 
| 2736 | 
            -
                  tags:
         | 
| 2737 | 
            -
                    - Option values
         | 
| 2738 | 
            -
                  security:
         | 
| 2739 | 
            -
                    - api-key: []
         | 
| 2740 | 
            -
                parameters:
         | 
| 2741 | 
            -
                  - name: option_type_id
         | 
| 2742 | 
            -
                    in: path
         | 
| 2743 | 
            -
                    required: true
         | 
| 2744 | 
            -
                    schema:
         | 
| 2745 | 
            -
                      type: string
         | 
| 2746 | 
            -
                    description: 'The ID of the Spree::OptionType'
         | 
| 2747 | 
            -
                  - name: id
         | 
| 2748 | 
            -
                    in: path
         | 
| 2749 | 
            -
                    required: true
         | 
| 2750 | 
            -
                    schema:
         | 
| 2751 | 
            -
                      type: string
         | 
| 2752 | 
            -
                    description: The ID of the OptionValue
         | 
| 2753 | 
            -
                delete:
         | 
| 2754 | 
            -
                  responses:
         | 
| 2755 | 
            -
                    '204':
         | 
| 2756 | 
            -
                      description: ''
         | 
| 2757 | 
            -
                      content:
         | 
| 2758 | 
            -
                        application/json:
         | 
| 2759 | 
            -
                          schema:
         | 
| 2760 | 
            -
                            $ref: '#/components/schemas/option-value'
         | 
| 2761 | 
            -
                    '401':
         | 
| 2762 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 2763 | 
            -
                    '404':
         | 
| 2764 | 
            -
                      $ref: '#/components/responses/not-found'
         | 
| 2765 | 
            -
                    '422':
         | 
| 2766 | 
            -
                      $ref: '#/components/responses/delete-restriction'
         | 
| 2767 | 
            -
                  summary: Delete option type value
         | 
| 2768 | 
            -
                  description: |-
         | 
| 2769 | 
            -
                    **Deprecation Warning**: Use [shallow version](/docs/solidus/0742e63219b1f-delete-option-value) instead
         | 
| 2770 | 
            -
             | 
| 2771 | 
            -
                    Deletes an option type's value.
         | 
| 2772 | 
            -
                  operationId: delete-option-type-value
         | 
| 2773 | 
            -
                  tags:
         | 
| 2774 | 
            -
                    - Option values
         | 
| 2775 | 
            -
                  security:
         | 
| 2776 | 
            -
                    - api-key: []
         | 
| 2777 | 
            -
                patch:
         | 
| 2778 | 
            -
                  responses:
         | 
| 2779 | 
            -
                    '200':
         | 
| 2780 | 
            -
                      description: ''
         | 
| 2781 | 
            -
                      content:
         | 
| 2782 | 
            -
                        application/json:
         | 
| 2783 | 
            -
                          schema:
         | 
| 2784 | 
            -
                            $ref: '#/components/schemas/option-value'
         | 
| 2785 | 
            -
                    '401':
         | 
| 2786 | 
            -
                      $ref: '#/components/responses/invalid-api-key'
         | 
| 2787 | 
            -
                    '404':
         | 
| 2788 | 
            -
                      $ref: '#/components/responses/not-found'
         | 
| 2789 | 
            -
                    '422':
         | 
| 2790 | 
            -
                      $ref: '#/components/responses/unprocessable-entity'
         | 
| 2791 | 
            -
                  summary: Update option type value
         | 
| 2792 | 
            -
                  description: |-
         | 
| 2793 | 
            -
                    **Deprecation Warning**: Use [shallow version](/docs/solidus/b43f889175ebb-update-option-value) instead
         | 
| 2794 | 
            -
             | 
| 2795 | 
            -
                    Updates an option type's value.
         | 
| 2796 | 
            -
             | 
| 2797 | 
            -
                    Only users with the `update` permission on the option value can perform this action.
         | 
| 2798 | 
            -
                  operationId: update-option-type-value
         | 
| 2799 | 
            -
                  tags:
         | 
| 2800 | 
            -
                    - Option values
         | 
| 2801 | 
            -
                  security:
         | 
| 2802 | 
            -
                    - api-key: []
         | 
| 2803 | 
            -
                  requestBody:
         | 
| 2804 | 
            -
                    content:
         | 
| 2805 | 
            -
                      application/json:
         | 
| 2806 | 
            -
                        schema:
         | 
| 2807 | 
            -
                          type: object
         | 
| 2808 | 
            -
                          properties:
         | 
| 2809 | 
            -
                            option_value:
         | 
| 2810 | 
            -
                              $ref: '#/components/schemas/option-value-input'
         | 
| 2811 2512 | 
             
              '/products/{product_id}/product_properties':
         | 
| 2812 2513 | 
             
                get:
         | 
| 2813 2514 | 
             
                  responses:
         | 
| @@ -5589,10 +5290,6 @@ paths: | |
| 5589 5290 | 
             
                    Creates a shipment.
         | 
| 5590 5291 |  | 
| 5591 5292 | 
             
                    Please note that this request can be only performed by users with the `create` permission on the shipment.
         | 
| 5592 | 
            -
             | 
| 5593 | 
            -
                    **Deprecation Warning**: Adding items to the shipment via this endpoint
         | 
| 5594 | 
            -
                    is deprecated. Instead, create an empty shipment and populate it with
         | 
| 5595 | 
            -
                    the dedicated endpoint [to add items to the shipment](/docs/solidus/7078dbcf415ac-add-shipment-item).
         | 
| 5596 5293 | 
             
                  operationId: create-shipment
         | 
| 5597 5294 | 
             
                  tags:
         | 
| 5598 5295 | 
             
                    - Shipments
         | 
| @@ -5606,18 +5303,10 @@ paths: | |
| 5606 5303 | 
             
                          properties:
         | 
| 5607 5304 | 
             
                            stock_location_id:
         | 
| 5608 5305 | 
             
                              type: integer
         | 
| 5609 | 
            -
                            variant_id:
         | 
| 5610 | 
            -
                              type: integer
         | 
| 5611 | 
            -
                              deprecated: true
         | 
| 5612 | 
            -
                            quantity:
         | 
| 5613 | 
            -
                              type: integer
         | 
| 5614 | 
            -
                              deprecated: true
         | 
| 5615 5306 | 
             
                        examples:
         | 
| 5616 5307 | 
             
                          Example:
         | 
| 5617 5308 | 
             
                            value:
         | 
| 5618 5309 | 
             
                              stock_location_id: 0
         | 
| 5619 | 
            -
                              variant_id: 0
         | 
| 5620 | 
            -
                              quantity: 0
         | 
| 5621 5310 | 
             
              /shipments/transfer_to_location:
         | 
| 5622 5311 | 
             
                post:
         | 
| 5623 5312 | 
             
                  responses:
         | 
    
        data/solidus_api.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: solidus_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 4.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Solidus Team
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-05-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jbuilder
         | 
| @@ -58,14 +58,14 @@ dependencies: | |
| 58 58 | 
             
                requirements:
         | 
| 59 59 | 
             
                - - '='
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version:  | 
| 61 | 
            +
                    version: 4.0.0
         | 
| 62 62 | 
             
              type: :runtime
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 66 | 
             
                - - '='
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version:  | 
| 68 | 
            +
                    version: 4.0.0
         | 
| 69 69 | 
             
            description: REST API for the Solidus e-commerce framework.
         | 
| 70 70 | 
             
            email: contact@solidus.io
         | 
| 71 71 | 
             
            executables: []
         | 
| @@ -97,7 +97,6 @@ files: | |
| 97 97 | 
             
            - app/controllers/spree/api/products_controller.rb
         | 
| 98 98 | 
             
            - app/controllers/spree/api/promotions_controller.rb
         | 
| 99 99 | 
             
            - app/controllers/spree/api/properties_controller.rb
         | 
| 100 | 
            -
            - app/controllers/spree/api/resource_controller.rb
         | 
| 101 100 | 
             
            - app/controllers/spree/api/return_authorizations_controller.rb
         | 
| 102 101 | 
             
            - app/controllers/spree/api/shipments_controller.rb
         | 
| 103 102 | 
             
            - app/controllers/spree/api/states_controller.rb
         | 
| @@ -266,14 +265,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 266 265 | 
             
              requirements:
         | 
| 267 266 | 
             
              - - ">="
         | 
| 268 267 | 
             
                - !ruby/object:Gem::Version
         | 
| 269 | 
            -
                  version:  | 
| 268 | 
            +
                  version: 3.0.0
         | 
| 270 269 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 271 270 | 
             
              requirements:
         | 
| 272 271 | 
             
              - - ">="
         | 
| 273 272 | 
             
                - !ruby/object:Gem::Version
         | 
| 274 273 | 
             
                  version: 1.8.23
         | 
| 275 274 | 
             
            requirements: []
         | 
| 276 | 
            -
            rubygems_version: 3.4. | 
| 275 | 
            +
            rubygems_version: 3.4.9
         | 
| 277 276 | 
             
            signing_key: 
         | 
| 278 277 | 
             
            specification_version: 4
         | 
| 279 278 | 
             
            summary: REST API for the Solidus e-commerce framework.
         | 
| @@ -1,102 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # @deprecated Inherit directly from Spree::Api::BaseController
         | 
| 4 | 
            -
            class Spree::Api::ResourceController < Spree::Api::BaseController
         | 
| 5 | 
            -
              before_action :load_resource, only: [:show, :update, :destroy]
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              def self.inherited(klass)
         | 
| 8 | 
            -
                Spree::Deprecation.warn <<~MSG
         | 
| 9 | 
            -
                  Spree::Api::ResourceController is deprecated. Please, copy any logic you
         | 
| 10 | 
            -
                  need and inherit directly from Spree::Api::BaseController.
         | 
| 11 | 
            -
                MSG
         | 
| 12 | 
            -
                super
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              def index
         | 
| 16 | 
            -
                collection_scope = model_class.accessible_by(current_ability)
         | 
| 17 | 
            -
                if params[:ids]
         | 
| 18 | 
            -
                  ids = params[:ids].split(",").flatten
         | 
| 19 | 
            -
                  collection_scope = collection_scope.where(id: ids)
         | 
| 20 | 
            -
                else
         | 
| 21 | 
            -
                  collection_scope = collection_scope.ransack(params[:q]).result
         | 
| 22 | 
            -
                end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                @collection = paginate(collection_scope)
         | 
| 25 | 
            -
                instance_variable_set("@#{controller_name}", @collection)
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                respond_with(@collection)
         | 
| 28 | 
            -
              end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
              def show
         | 
| 31 | 
            -
                respond_with(@object)
         | 
| 32 | 
            -
              end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
              def new
         | 
| 35 | 
            -
                authorize! :new, model_class
         | 
| 36 | 
            -
                respond_with(model_class.new)
         | 
| 37 | 
            -
              end
         | 
| 38 | 
            -
             | 
| 39 | 
            -
              def create
         | 
| 40 | 
            -
                authorize! :create, model_class
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                @object = model_class.new(permitted_resource_params)
         | 
| 43 | 
            -
                instance_variable_set("@#{object_name}", @object)
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                if @object.save
         | 
| 46 | 
            -
                  respond_with(@object, status: 201, default_template: :show)
         | 
| 47 | 
            -
                else
         | 
| 48 | 
            -
                  invalid_resource!(@object)
         | 
| 49 | 
            -
                end
         | 
| 50 | 
            -
              end
         | 
| 51 | 
            -
             | 
| 52 | 
            -
              def update
         | 
| 53 | 
            -
                authorize! :update, @object
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                if @object.update(permitted_resource_params)
         | 
| 56 | 
            -
                  respond_with(@object, status: 200, default_template: :show)
         | 
| 57 | 
            -
                else
         | 
| 58 | 
            -
                  invalid_resource!(@object)
         | 
| 59 | 
            -
                end
         | 
| 60 | 
            -
              end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
              def destroy
         | 
| 63 | 
            -
                authorize! :destroy, @object
         | 
| 64 | 
            -
             | 
| 65 | 
            -
                destroy_result = if @object.respond_to?(:discard)
         | 
| 66 | 
            -
                  @object.discard
         | 
| 67 | 
            -
                else
         | 
| 68 | 
            -
                  @object.destroy
         | 
| 69 | 
            -
                end
         | 
| 70 | 
            -
             | 
| 71 | 
            -
                if destroy_result
         | 
| 72 | 
            -
                  respond_with(@object, status: 204)
         | 
| 73 | 
            -
                else
         | 
| 74 | 
            -
                  invalid_resource!(@object)
         | 
| 75 | 
            -
                end
         | 
| 76 | 
            -
              rescue ActiveRecord::DeleteRestrictionError
         | 
| 77 | 
            -
                render "spree/api/errors/delete_restriction", status: 422
         | 
| 78 | 
            -
              end
         | 
| 79 | 
            -
             | 
| 80 | 
            -
              protected
         | 
| 81 | 
            -
             | 
| 82 | 
            -
              def load_resource
         | 
| 83 | 
            -
                @object = model_class.accessible_by(current_ability, :show).find(params[:id])
         | 
| 84 | 
            -
                instance_variable_set("@#{object_name}", @object)
         | 
| 85 | 
            -
              end
         | 
| 86 | 
            -
             | 
| 87 | 
            -
              def permitted_resource_params
         | 
| 88 | 
            -
                params.require(object_name).permit(permitted_resource_attributes)
         | 
| 89 | 
            -
              end
         | 
| 90 | 
            -
             | 
| 91 | 
            -
              def permitted_resource_attributes
         | 
| 92 | 
            -
                send("permitted_#{object_name}_attributes")
         | 
| 93 | 
            -
              end
         | 
| 94 | 
            -
             | 
| 95 | 
            -
              def model_class
         | 
| 96 | 
            -
                "Spree::#{controller_name.classify}".constantize
         | 
| 97 | 
            -
              end
         | 
| 98 | 
            -
             | 
| 99 | 
            -
              def object_name
         | 
| 100 | 
            -
                controller_name.singularize
         | 
| 101 | 
            -
              end
         | 
| 102 | 
            -
            end
         |