6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/services/spree/carts/update.rb', line 6
def call(cart:, params:)
@cart = cart
@params = params.to_h.deep_symbolize_keys
ApplicationRecord.transaction do
assign_cart_attributes
clear_shipping_address_if_outside_market
assign_address(:shipping_address)
assign_address(:billing_address)
cart.save!
process_items
end
try_advance
success(cart)
rescue ActiveRecord::RecordNotFound
raise
rescue ActiveRecord::RecordInvalid => e
failure(cart, e.record.errors.full_messages.to_sentence)
rescue StandardError => e
failure(cart, e.message)
end
|