Sha256: 0e4feae6b61cd7c3e843cce2d2169a9e0f04a3feb9e49ef2d4a22517e7835c35

Contents?: true

Size: 1.17 KB

Versions: 99

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module Spree
  module Api
    class CouponCodesController < Spree::Api::BaseController
      before_action :load_order
      around_action :lock_order

      def create
        authorize! :update, @order, order_token

        @order.coupon_code = params[:coupon_code]
        @handler = PromotionHandler::Coupon.new(@order).apply

        if @handler.successful?
          render 'spree/api/promotions/handler', status: 200
        else
          logger.error("apply_coupon_code_error=#{@handler.error.inspect}")
          render 'spree/api/promotions/handler', status: 422
        end
      end

      def destroy
        authorize! :update, @order, order_token

        @order.coupon_code = params[:id]
        @handler = PromotionHandler::Coupon.new(@order).remove

        if @handler.successful?
          render 'spree/api/promotions/handler', status: 200
        else
          logger.error("remove_coupon_code_error=#{@handler.error.inspect}")
          render 'spree/api/promotions/handler', status: 422
        end
      end

      private

      def load_order
        @order = Spree::Order.find_by!(number: params[:order_id])
      end
    end
  end
end

Version data entries

99 entries across 99 versions & 1 rubygems

Version Path
solidus_api-4.1.6 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.2.4 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.1.5 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.1.4 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.2.3 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.1.3 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.0.4 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-3.4.6 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.0.3 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.1.2 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.2.2 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-3.4.5 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.2.1 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.2.0 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.1.1 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-4.0.2 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-3.4.4 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-3.3.4 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-3.2.9 app/controllers/spree/api/coupon_codes_controller.rb
solidus_api-3.2.8 app/controllers/spree/api/coupon_codes_controller.rb