Sha256: b17fab960411d4af40739ab94c78cbc520220e1f6c3f0c5ead5a10c1702443af
Contents?: true
Size: 839 Bytes
Versions: 4
Compression:
Stored size: 839 Bytes
Contents
# frozen_string_literal: true module SolidusGraphqlApi module Mutations module Checkout class ApplyCouponCode < BaseMutation null true argument :coupon_code, String, required: true field :order, Types::Order, null: true field :errors, [Types::UserError], null: false def resolve(coupon_code:) current_order.coupon_code = coupon_code handler = Spree::PromotionHandler::Coupon.new(current_order).apply current_order.errors.add(:coupon_code, handler.error) unless handler.successful? { order: current_order, errors: user_errors("order", current_order.errors) } end def ready?(*) current_ability.authorize!(:update, current_order, guest_token) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems