Sha256: 3f1c512f4a1f4ba6faa7c2cfd622c8d1a8e2cd275e2fce80452104d4896f1894
Contents?: true
Size: 1.04 KB
Versions: 4
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true module SolidusGraphqlApi module Mutations module Checkout class SelectShippingRate < BaseMutation null true argument :shipping_rate_id, ID, required: true, loads: Types::ShippingRate field :order, Types::Order, null: true field :errors, [Types::UserError], null: false def resolve(shipping_rate:) current_order.update(state: :delivery) update_params = { shipments_attributes: { id: shipping_rate.shipment_id, selected_shipping_rate_id: shipping_rate.id } } if Spree::OrderUpdateAttributes.new(current_order, update_params).apply current_order.recalculate errors = [] else errors = current_order.errors end { errors: user_errors('order', errors), order: current_order } 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