Module: Avalara
- Defined in:
- lib/avalara.rb,
lib/avalara/api.rb,
lib/avalara/types.rb,
lib/avalara/errors.rb,
lib/avalara/parser.rb,
lib/avalara/request.rb,
lib/avalara/version.rb,
lib/avalara/response.rb,
lib/avalara/types/date.rb,
lib/avalara/types/stash.rb,
lib/avalara/request/line.rb,
lib/avalara/response/tax.rb,
lib/avalara/request/address.rb,
lib/avalara/request/invoice.rb,
lib/avalara/response/address.rb,
lib/avalara/response/invoice.rb,
lib/avalara/response/message.rb,
lib/avalara/response/tax_line.rb,
lib/avalara/response/tax_detail.rb,
lib/avalara/request/detail_level.rb,
lib/avalara/response/tax_address.rb,
lib/avalara/response/address_line.rb
Defined Under Namespace
Modules: Request, Response, Types
Classes: API, ApiError, Configuration, Parser
Constant Summary
collapse
- Error =
Class.new(StandardError)
- TimeoutError =
Class.new(Error)
- NotImplementedError =
Class.new(Error)
- VERSION =
'0.2.0'
Class Method Summary
collapse
Class Method Details
.configuration {|@@_configuration| ... } ⇒ Object
15
16
17
18
19
|
# File 'lib/avalara.rb', line 15
def self.configuration
@@_configuration ||= Avalara::Configuration.new
yield @@_configuration if block_given?
@@_configuration
end
|
.configuration=(configuration) ⇒ Object
21
22
23
24
|
# File 'lib/avalara.rb', line 21
def self.configuration=(configuration)
raise ArgumentError, 'Expected a Avalara::Configuration instance' unless configuration.kind_of?(Configuration)
@@_configuration = configuration
end
|
26
27
28
|
# File 'lib/avalara.rb', line 26
def self.configure(&block)
configuration(&block)
end
|
.endpoint ⇒ Object
54
55
56
|
# File 'lib/avalara.rb', line 54
def self.endpoint
configuration.endpoint
end
|
.endpoint=(endpoint) ⇒ Object
57
58
59
|
# File 'lib/avalara.rb', line 57
def self.endpoint=(endpoint)
configuration.endpoint = endpoint
end
|
.geographical_tax(latitude, longitude, sales_amount) ⇒ Object
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/avalara.rb', line 82
def self.geographical_tax(latitude, longitude, sales_amount)
uri = [
configuration.endpoint,
configuration.version,
"tax",
"#{latitude},#{longitude}",
"get"
].join("/")
response = API.get(
uri,
{
:headers => API.('0'),
:query => {:saleamount => sales_amount},
:basic_auth => authentication
}.merge!(net_settings)
)
Avalara::Response::Tax.new(response)
rescue Timeout::Error
puts "Timed out"
raise TimeoutError
end
|
.get_tax(invoice) ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/avalara.rb', line 106
def self.get_tax(invoice)
uri = [endpoint, version, 'tax', 'get'].join('/')
response = API.post(
uri,
{
:body => invoice.to_json,
:headers => API.(invoice.to_json.length),
:basic_auth => authentication
}.merge!(net_settings)
)
case response.code
when 200..299
Response::Invoice.new(response)
when 400..599
raise ApiError.new(Response::Invoice.new(response))
else
raise ApiError.new(response)
end
rescue Timeout::Error => e
raise TimeoutError.new(e)
rescue ApiError => e
raise e
rescue Exception => e
raise Error.new(e)
end
|
.open_timeout ⇒ Object
46
47
48
|
# File 'lib/avalara.rb', line 46
def self.open_timeout
configuration.open_timeout
end
|
.open_timeout=(open_timeout) ⇒ Object
50
51
52
|
# File 'lib/avalara.rb', line 50
def self.open_timeout=(open_timeout)
configuration.open_timeout = open_timeout
end
|
.password ⇒ Object
68
69
70
|
# File 'lib/avalara.rb', line 68
def self.password
configuration.password
end
|
.password=(password) ⇒ Object
71
72
73
|
# File 'lib/avalara.rb', line 71
def self.password=(password)
configuration.password = password
end
|
.read_timeout ⇒ Object
38
39
40
|
# File 'lib/avalara.rb', line 38
def self.read_timeout
configuration.read_timeout
end
|
.read_timeout=(read_timeout) ⇒ Object
42
43
44
|
# File 'lib/avalara.rb', line 42
def self.read_timeout=(read_timeout)
configuration.read_timeout = read_timeout
end
|
.timeout ⇒ Object
30
31
32
|
# File 'lib/avalara.rb', line 30
def self.timeout
configuration.timeout
end
|
.timeout=(timeout) ⇒ Object
34
35
36
|
# File 'lib/avalara.rb', line 34
def self.timeout=(timeout)
configuration.timeout = timeout
end
|
.username ⇒ Object
61
62
63
|
# File 'lib/avalara.rb', line 61
def self.username
configuration.username
end
|
.username=(username) ⇒ Object
64
65
66
|
# File 'lib/avalara.rb', line 64
def self.username=(username)
configuration.username = username
end
|
.validate_address(address_hash) ⇒ Object
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
# File 'lib/avalara.rb', line 134
def self.validate_address(address_hash)
uri = [endpoint, version, "address", "validate"].join("/")
response = API.get(
uri,
{
query: address_hash,
headers: API.('0'),
basic_auth: authentication
}.merge!(net_settings)
)
case response.code
when 200..299
Response::Address.new(response)
when 400..599
fail ApiError.new(Response::Address.new(response))
else
fail ApiError.new(response)
end
rescue Timeout::Error => e
raise TimeoutError.new(e)
end
|
.version ⇒ Object
75
76
77
|
# File 'lib/avalara.rb', line 75
def self.version
configuration.version
end
|
.version=(version) ⇒ Object
78
79
80
|
# File 'lib/avalara.rb', line 78
def self.version=(version)
configuration.version = version
end
|