Class: AcumenOrderClient

Inherits:
Object
  • Object
show all
Defined in:
lib/huginn_acumen_order_agent/acumen_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(faraday, auth) ⇒ AcumenOrderClient

Returns a new instance of AcumenOrderClient.



5
6
7
8
# File 'lib/huginn_acumen_order_agent/acumen_client.rb', line 5

def initialize(faraday, auth)
  @faraday = faraday
  @auth = auth
end

Instance Method Details

#execute_in_list_query(body, headers) ⇒ Object



27
28
29
30
# File 'lib/huginn_acumen_order_agent/acumen_client.rb', line 27

def execute_in_list_query(body, headers)
    response = @faraday.run_request(:post, "#{@auth['endpoint']}QueryByInList", body, headers)
    ::MultiXml.parse(response.body, {})
end

#execute_query(body, headers) ⇒ Object



22
23
24
25
# File 'lib/huginn_acumen_order_agent/acumen_client.rb', line 22

def execute_query(body, headers)
    response = @faraday.run_request(:post, "#{@auth['endpoint']}Query", body, headers)
    ::MultiXml.parse(response.body, {})
end

#get_invoice_details(invoice_ids) ⇒ Object



16
17
18
19
20
# File 'lib/huginn_acumen_order_agent/acumen_client.rb', line 16

def get_invoice_details(invoice_ids)
    body = build_invoice_detail_query(invoice_ids)
    response = execute_in_list_query(body, {})
    get_results(response, 'Invoice_Detail')
end

#get_invoices(order_codes) ⇒ Object



10
11
12
13
14
# File 'lib/huginn_acumen_order_agent/acumen_client.rb', line 10

def get_invoices(order_codes)
    body = build_invoice_request(order_codes)
    response = execute_in_list_query(body, {})
    get_results(response, 'Invoice')
end

#get_results(response, name) ⇒ Object



32
33
34
35
36
# File 'lib/huginn_acumen_order_agent/acumen_client.rb', line 32

def get_results(response, name)
    result_set = response['Envelope']['Body']['acusoapResponse']['result_set.' + name]
    results = result_set.nil? ? [] : result_set[name]
    results.is_a?(Array) ? results : [results]
end