Avatax_AddressService 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjgyNjQyMjQwNGVlMDNkYzQ0MzI3MzNlYjcxOTNhNjI3NjNhZGQzNg==
4
+ NGEwYzJmYWVhMzM0NmYwNTY3ZTVhMWE3M2I0ZWEwM2IxYzljZWJmZA==
5
5
  data.tar.gz: !binary |-
6
- YWU5NTM1OGZlZjU4YmU5MjJjZGFkNzI5MWY3ZTZjOWJkZmU4ODkzOA==
6
+ YWYxNjI5NGE3NTg1N2MwOWNiNjQzY2IzZDdhMTBiNjNkNDRmNmRkOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTBlNjJlYzlmZjk5NTVmODlmZTQ5YmZjM2EwM2M3Yzg2ODJmNzc1ZGE1ZGE5
10
- ZTE2NzlhNTI3ZThlMjY5MmIwNTU4NWViMzA2YTA1NGVjNmRkMzNjMDc1OWFj
11
- YTg5NTFiNzY4OThmNTUyNjVkNGRkODQ5MTY5ZDFiZGY4OWZjZTM=
9
+ MmM5NjliYjk2ODAyYWFlN2VmZDE5ZjEyZDhmNzIyMTY4MzBlNTdhYTdkZDM5
10
+ MmI1ZTQwNjM0NzVkMjg5MzNkNTVjZTdlMzBjYWJkOTYxMWExZmY1ZjVlNmMz
11
+ ZDI1YmEzOTM5YTQ3MjFjYzAyNjljMjgyNjZiZGIxYTJhZThiNmM=
12
12
  data.tar.gz: !binary |-
13
- Njg3OGFlMTJiMzhiY2VmNmUwYjYzNjc1YjJiNzc3NGE0OWM3OTA5ODEzMzAx
14
- MzEyY2E3ZmNhZWQ5NGQzNDNiZWY2Y2Y3NzY3OTM3ZDY1YzE2ODE2YmQ5NjM2
15
- NjBiNzdjMmUxYmFiODJhN2Y5ZmY0ZDIzZjE3MzRhNDE1M2Q1MGY=
13
+ OWY3MGE2YTdlN2RkODIyNmEyZjMwZTg3OTQ2NWRhZTBmZTU1M2JlMGI5NGM0
14
+ ZGJmYTA5MzlkZTQxNDhjNDJkZThlODI1YzZkYWZiMjc2YjBiMmM1NThkNDUx
15
+ N2I5NTFjMDFiMjJjYWI1NzdjNmQxNDNjMGFkYmZmMGM3MjQ0NzA=
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "Avatax_AddressService"
3
- s.version = "1.0.8"
3
+ s.version = "1.0.9"
4
4
  s.date = "2012-12-16"
5
5
  s.author = "Graham S Wilson"
6
6
  s.email = "support@Avalara.com"
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.license = 'MIT'
10
10
  s.description = "Ruby SDK provides means of communication with Avatax Web Services."
11
11
  s.files = ["lib/address_log.txt", "lib/addressservice_dev.wsdl", "lib/addressservice_prd.wsdl", "lib/avatax_addressservice.rb",
12
- "lib/template_validate.erb","lib/template_ping.erb","lib/template_isauthorized.erb","test/test_address.rb",
12
+ "lib/template_validate.erb","lib/template_ping.erb","lib/template_isauthorized.erb",
13
13
  "Avatax_AddressService.gemspec", "Avatax Ruby SDK Guide.docx", "LICENSE.txt"]
14
14
  # s.add_dependency "nokogiri", ">= 1.4.0", "< 1.6"
15
15
  s.add_dependency "savon", ">= 2.3.0"
@@ -14,7 +14,10 @@ module AvaTax
14
14
 
15
15
  #Extract data from hash
16
16
  username = credentials[:username]
17
- password = credentials[:password]
17
+ password = credentials[:password]
18
+ if username.nil? and password.nil?
19
+ raise ArgumentError, "username and password are required"
20
+ end
18
21
  name = credentials[:name]
19
22
  clientname = credentials[:clientname]
20
23
  adapter = credentials[:adapter]
@@ -25,7 +28,7 @@ module AvaTax
25
28
  @username = username == nil ? "" : username
26
29
  @password = password == nil ? "" : password
27
30
  @name = name == nil ? "" : name
28
- @clientname = (clientname == nil or clientname == "") ? "Avatax Address Service SDK for Ruby Default Client Name" : clientname
31
+ @clientname = (clientname == nil or clientname == "") ? "AvataxRubySDK" : clientname
29
32
  @adapter = (adapter == nil or adapter == "") ? spec.summary + spec.version.to_s : adapter
30
33
  @machine = machine == nil ? "" : machine
31
34
  @use_production_account = (use_production_account != true) ? false : use_production_account
@@ -73,7 +76,7 @@ module AvaTax
73
76
  ############################################################################################################
74
77
  # ping - Verifies connectivity to the web service and returns version information
75
78
  ############################################################################################################
76
- def ping(message)
79
+ def ping(message = nil)
77
80
 
78
81
  @service = 'Ping'
79
82
 
@@ -88,7 +91,7 @@ module AvaTax
88
91
  @response = @client.call(:ping, xml: @soap).to_hash
89
92
 
90
93
  #Strip off outer layer of the hash - not needed
91
- @response = @response[:ping_response]
94
+ @response = @response[:ping_response][:ping_result]
92
95
 
93
96
  return @response
94
97
 
@@ -104,40 +107,18 @@ module AvaTax
104
107
  def validate(address)
105
108
 
106
109
  @service = 'Validate'
107
-
108
- #Extract data from hash
109
- addresscode = address[:addresscode]
110
- line1 = address[:line1]
111
- line2 = address[:line2]
112
- line3 = address[:line3]
113
- city = address[:city]
114
- region = address[:region]
115
- postalcode = address[:postalcode]
116
- country = address[:country]
117
- taxregionid = address[:taxregionid]
118
- latitude = address[:latitude]
119
- longitude = address[:longitude]
120
- textcase = address[:textcase]
121
- coordinates = address[:coordinates]
122
- taxability = address[:taxability]
123
-
124
- #Set parms passed by user - If Nil then default else use passed value
125
- @addresscode = addresscode == nil ? "123" : addresscode
126
- @line1 = line1 == nil ? "" : line1
127
- @line2 = line2 == nil ? "" : line2
128
- @line3 = line3 == nil ? "" : line3
129
- @city = city == nil ? "" : city
130
- @region = region == nil ? "" : region
131
- @postalcode = postalcode == nil ? "" : postalcode
132
- @country = country == nil ? "" : country
133
- @taxregionid = taxregionid == nil ? "0" : taxregionid
134
- @latitude = latitude == nil ? "" : latitude
135
- @longitude = longitude == nil ? "" : longitude
136
- @textcase = textcase == nil ? "Default" : textcase
137
- @coordinates = coordinates == nil ? "true" : coordinates
138
- @taxability = taxability == nil ? "false" : taxability
139
-
140
- # Subsitute real vales for template place holders
110
+
111
+ #create instance variables for each entry in input
112
+ address.each do |k,v|
113
+ instance_variable_set("@#{k}",v)
114
+ end
115
+ #set required default values for missing required inputs
116
+ @taxregionid ||= "0"
117
+ @textcase ||= "Default"
118
+ @coordinates ||= false
119
+ @taxability ||= false
120
+
121
+ # Subsitute real values for template place holders
141
122
  @soap = @template_validate.result(binding)
142
123
 
143
124
  # Make the call to the Avalara Validate service
@@ -145,7 +126,7 @@ module AvaTax
145
126
  @response = @client.call(:validate, xml: @soap).to_hash
146
127
 
147
128
  #Strip off outer layer of the hash - not needed
148
- @response = @response[:validate_response]
129
+ @response = @response[:validate_response][:validate_result]
149
130
 
150
131
  #Return data to calling program
151
132
  return @response
@@ -159,7 +140,7 @@ module AvaTax
159
140
  ############################################################################################################
160
141
  #Verifies connectivity to the web service and returns version information about the service.
161
142
  ############################################################################################################
162
- def isauthorized(operation)
143
+ def isauthorized(operation = nil)
163
144
 
164
145
  @service = 'IsAuthorized'
165
146
 
@@ -174,7 +155,7 @@ module AvaTax
174
155
  @response = @client.call(:is_authorized, xml: @soap).to_hash
175
156
 
176
157
  #Strip off outer layer of the hash - not needed
177
- @response = @response[:is_authorized_response]
158
+ @response = @response[:is_authorized_response][:is_authorized_result]
178
159
 
179
160
  return @response
180
161
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Avatax_AddressService
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Graham S Wilson
@@ -37,7 +37,6 @@ files:
37
37
  - lib/template_validate.erb
38
38
  - lib/template_ping.erb
39
39
  - lib/template_isauthorized.erb
40
- - test/test_address.rb
41
40
  - Avatax_AddressService.gemspec
42
41
  - Avatax Ruby SDK Guide.docx
43
42
  - LICENSE.txt
@@ -1,176 +0,0 @@
1
- #Load the Avalara Address Service module
2
- require 'avatax_addressservice'
3
- #require green_shoes for the GUI
4
- require 'green_shoes'
5
-
6
- #Create new Credentials hash object
7
- credentials = Hash.new
8
-
9
- #Create new Address hash object
10
- address = Hash.new
11
- val_addr = Hash.new
12
-
13
- Shoes.app :width => 400, :height => 460 do
14
- background orange
15
- border("#BE8",
16
- strokewidth: 6)
17
- stack(margin: 15) do
18
- para
19
- para "Enter Avalara credentials"
20
- para "Username:"
21
- @username = edit_line text: "USERNAME"
22
- para "Password:"
23
- @password = edit_line text: "PASSWORD", :secret => true
24
- para "Test Production:"
25
- @use_production_account = edit_line text: "false"
26
- para
27
- @confirm = button "Confirm"
28
- para
29
- @confirm.click {
30
- credentials[:username] = @username.text
31
- credentials[:password] = @password.text
32
- credentials[:name] = 'Avalara Inc.'
33
- credentials[:clientname] = ''
34
- credentials[:adapter] = ''
35
- credentials[:machine] = 'Lenovo W520 Windows 7'
36
- if @use_production_account.text == 'true' then
37
- credentials[:use_production_account] = !!@use_production_account
38
- else
39
- credentials[:use_production_account] = nil
40
- end
41
-
42
- #Create an address service instance
43
- AddrService = AvaTax::AddressService.new(credentials)
44
-
45
- #Open a window to get the address to validate
46
- Shoes.app :width => 400, :height => 700, :title => "Avalara - Address Validation Tester" do
47
-
48
- #Set window characteristics
49
- background green..orange
50
-
51
- #Get the address to validate from the user
52
- stack :margin => 10 do
53
- #Get user input
54
- para "Line 1:"
55
- @line1 = edit_line text: "100 rav"
56
- para "Line 2:"
57
- @line2 = edit_line
58
- para "Line 3:"
59
- @line3 = edit_line
60
- para "City"
61
- @city = edit_line width: 100, text: "bainbridge"
62
- para "State"
63
- @state = edit_line width: 40, text: 'WA'
64
- para "Zip"
65
- @zip = edit_line width: 60, text: "98110"
66
- para "Country"
67
- @country = edit_line width: 30, text: "US"
68
- para "Textcase"
69
- @textcase = "Default"
70
- list_box items: ["Default", "Upper", "Mixed"],
71
- width: 120, choose: @textcase do |list|
72
- @textcase = list.text
73
- end
74
- @validate = button "Validate"
75
- end
76
-
77
- #When the user clicks the Validate button then call the Validate service
78
- @validate.click {
79
- address[:line1] = @line1.text
80
- address[:line2] = @line2.text
81
- address[:line3] = @line3.text
82
- address[:city] = @city.text
83
- address[:region] = @state.text
84
- address[:postalcode] = @zip.text
85
- address[:country]= @country.text
86
- address[:textcase] = @textcase
87
- address[:addresscode] = "123"
88
-
89
-
90
- #Call the validate service - passing the address as a Hash
91
- val_addr = AddrService.validate(address)
92
-
93
- #if val_addr[:validate_result][:result_code] == "Success" and val_addr[:result_code] != "Error"
94
- if val_addr[:result_code] == "Error"
95
-
96
- Shoes.app :width => 400, :height => 500, :margin => 10, :title => "Address Validation Error" do
97
-
98
- background orange..red
99
-
100
- #Dispay error details
101
- para "RESULT: Error"
102
- para "DETAILS #{val_addr[:details]}"
103
- end
104
- else
105
- if val_addr[:validate_result][:result_code] == "Success"
106
-
107
- #Display validated result in a new window
108
- Shoes.app :width => 400, :height => 1000, :left => 1000, :title => "Avalara - Address Validation Result" do
109
-
110
- background orange..blue
111
-
112
- stack :margin => 10 do
113
- #Display result
114
- para "Line 1:"
115
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:line1]
116
- para "Line 2:"
117
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:line2]
118
- para "Line 3:"
119
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:line3]
120
- para "City"
121
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:city]
122
- para "State"
123
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:region]
124
- para "Zip"
125
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:postal_code]
126
- para "Country"
127
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:country]
128
- para
129
- para "Latitude"
130
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:latitude]
131
- para "Longitude"
132
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:longitude]
133
- para "County"
134
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:county]
135
- para "FIPS Code"
136
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:fips_code]
137
- para "Carrier Route"
138
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:carrier_route]
139
- para "Post Net"
140
- edit_line :text => val_addr[:validate_result][:valid_addresses][:valid_address][:post_net]
141
- end
142
- end
143
- else
144
-
145
- #Display error message in a new window
146
- Shoes.app :width => 400, :height => 500, :title => "Address Validation Error" do
147
-
148
- background orange..red
149
-
150
- if val_addr[:validate_result][:result_code] == "Error"
151
-
152
- stack :margin => 10 do
153
- #Dispay error details
154
- para "RESULT: #{val_addr[:validate_result][:result_code]}"
155
- para "SUMMARY: #{val_addr[:validate_result][:messages][:message][:summary]}"
156
- para "DETAILS: #{val_addr[:validate_result][:messages][:message][:details]}"
157
- para "HELP LINK: #{val_addr[:validate_result][:messages][:message][:help_link]}"
158
- para "REFERS TO: #{val_addr[:validate_result][:messages][:message][:refers_to]}"
159
- para "SEVERITY: #{val_addr[:validate_result][:messages][:message][:severity]}"
160
- para "SOURCE #{val_addr[:validate_result][:messages][:message][:source]}"
161
- end
162
- else
163
- #Dispay error details
164
- para "RESULT: Error"
165
- para "SUMMARY: Unexpected error"
166
- para "DETAILS: An unexpected error has occurred ... please check address_log.txt for details"
167
- end
168
- end
169
- end
170
- end}
171
- end}
172
- end
173
- end
174
-
175
-
176
-