Sha256: e6676f7d861dffe3e328a30e15263e1ae7036b1784c86e69413d8e3b663b1081
Contents?: true
Size: 1.28 KB
Versions: 4
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true module SolidusGraphqlApi module Mutations module Checkout class AddAddressesToCheckout < BaseMutation null true argument :billing_address, Types::InputObjects::AddressInput, required: true argument :shipping_address, Types::InputObjects::AddressInput, required: false argument :ship_to_billing_address, Boolean, required: false field :order, Types::Order, null: true field :errors, [Types::UserError], null: false def resolve(billing_address:, shipping_address: nil, ship_to_billing_address: false) current_order.update(state: :address) update_params = { bill_address: Spree::Address.new(billing_address.to_h), ship_address: Spree::Address.new(shipping_address.to_h), use_billing: ship_to_billing_address } 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