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