Class: Acumatica::Client

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/acumatica/client.rb

Constant Summary collapse

API_VERSION =
"6.00.001"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#debugObject

Returns the value of attribute debug.



14
15
16
# File 'lib/acumatica/client.rb', line 14

def debug
  @debug
end

#nameObject

Returns the value of attribute name.



14
15
16
# File 'lib/acumatica/client.rb', line 14

def name
  @name
end

#passwordObject

Returns the value of attribute password.



14
15
16
# File 'lib/acumatica/client.rb', line 14

def password
  @password
end

#tokenObject

Returns the value of attribute token.



14
15
16
# File 'lib/acumatica/client.rb', line 14

def token
  @token
end

#urlObject

Returns the value of attribute url.



14
15
16
# File 'lib/acumatica/client.rb', line 14

def url
  @url
end

Class Method Details

.configure {|instance| ... } ⇒ Object

Yields:

  • (instance)


16
17
18
19
# File 'lib/acumatica/client.rb', line 16

def self.configure
  yield(instance)
  instance
end

Instance Method Details

#base_urlObject



21
22
23
# File 'lib/acumatica/client.rb', line 21

def base_url
  @base_url ||= URI.join(url, "entity/Default/#{API_VERSION}/")
end

#connectionObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/acumatica/client.rb', line 25

def connection
  @connection ||= Faraday.new do |conn|
    conn.request :json

    if token
      conn.request :oauth2, token
    else
      conn.use :cookie_jar
    end
    conn.use Acumatica::ErrorHandler

    conn.response :json
    conn.response :logger, nil, bodies: true if debug
    conn.adapter Faraday.default_adapter
  end
end

#customersObject



61
62
63
# File 'lib/acumatica/client.rb', line 61

def customers
  Acumatica::Customer
end

#loginObject



49
50
51
52
53
54
55
# File 'lib/acumatica/client.rb', line 49

def 
  response = connection.post do |req|
    req.url URI.join(@url, "/entity/auth/login")
    req.body = { name: @name, password: @password }
  end
  response.success?
end

#logoutObject



57
58
59
# File 'lib/acumatica/client.rb', line 57

def logout
  connection.post(URI.join(@url, "/entity/auth/logout")).success?
end

#sales_ordersObject



65
66
67
# File 'lib/acumatica/client.rb', line 65

def sales_orders
  Acumatica::SalesOrder
end

#sessionObject



42
43
44
45
46
47
# File 'lib/acumatica/client.rb', line 42

def session
  
  result = yield
  logout
  result
end

#stock_itemsObject



69
70
71
# File 'lib/acumatica/client.rb', line 69

def stock_items
  Acumatica::StockItem
end