Class: Workarea::Paypal::UpdateOrder

Inherits:
Object
  • Object
show all
Defined in:
app/services/workarea/paypal/update_order.rb

Instance Method Summary collapse

Constructor Details

#initialize(checkout) ⇒ UpdateOrder

Returns a new instance of UpdateOrder.



7
8
9
# File 'app/services/workarea/paypal/update_order.rb', line 7

def initialize(checkout)
  @checkout = checkout
end

Instance Method Details

#createObject



11
12
13
# File 'app/services/workarea/paypal/update_order.rb', line 11

def create
  @create ||= Paypal::CreateOrder.new(@checkout)
end

#performObject



15
16
17
18
19
# File 'app/services/workarea/paypal/update_order.rb', line 15

def perform
  return false unless payment.paypal?

  Paypal.gateway.update_order(paypal_id, body: request_body)
end

#request_bodyObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/services/workarea/paypal/update_order.rb', line 21

def request_body
  shipping = create.shipping_info

  [
    {
      op: 'replace',
      path: "/purchase_units/@reference_id=='default'/shipping/name",
      value: shipping[:name]
    },
    {
      op: 'replace',
      path: "/purchase_units/@reference_id=='default'/shipping/address",
      value: shipping[:address]
    },
    {
      op: 'replace',
      path: "/purchase_units/@reference_id=='default'/amount",
      value: create.amount
    }
  ]
end