Avatax_AddressService 1.0.8 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
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
-