Class: SpreeCmCommissioner::ChatraceOrderCreator

Inherits:
BaseInteractor show all
Defined in:
app/interactors/spree_cm_commissioner/chatrace_order_creator.rb

Instance Method Summary collapse

Instance Method Details

#callObject



8
9
10
11
12
13
# File 'app/interactors/spree_cm_commissioner/chatrace_order_creator.rb', line 8

def call
  context.order_creator = create_order
  return context.fail!(message: context.order_creator.message) unless context.order_creator.success?

  notify_user
end

#create_orderObject



15
16
17
18
19
20
21
22
23
24
25
# File 'app/interactors/spree_cm_commissioner/chatrace_order_creator.rb', line 15

def create_order
  SpreeCmCommissioner::OrderImporter::SingleGuest.call(
    guest_token: guest_token,
    params: order_params.slice(
      :order_email,
      :order_phone_number,
      :variant_id,
      *SpreeCmCommissioner::Guest.csv_importable_columns
    )
  )
end

#notify_userObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/interactors/spree_cm_commissioner/chatrace_order_creator.rb', line 27

def notify_user
  client = Faraday.new(
    url: "https://#{chatrace_api_host}",
    headers: {
      'X-ACCESS-TOKEN' => chatrace_access_token,
      'Content-Type' => 'application/json'
    }
  )

  response = client.post("/api/users/#{chatrace_user_id}/send/#{chatrace_return_flow_id}")
  context.fail!(message: 'notify_user_failed') unless response.status == 200
end