smartystreets_ruby_sdk 5.15.3 → 5.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ac154e7fb0b83bd55b48cf4b296f449edfcb28dcad366c0697d46da13f19e2c
4
- data.tar.gz: 627036e46afc76d309296b44072d1d9c2b6691283d8179fd663776ce013655bc
3
+ metadata.gz: 3420356d8cdd87a995c6fae44cdfa26549322163bc1ebe767a181aca029280b5
4
+ data.tar.gz: 3c63162a19e7abd5841df9ee8699e40b27edcd0d9fe0c1615221f41844e289ce
5
5
  SHA512:
6
- metadata.gz: 50712d816110c4ab4231c2f2a3cf4d2b02bb8d9f76c2d555d2c4a75fdc350eec382d4c85bdabe72d5f068f2031e443726caf1e00f88ea40e3510e3461cd684ef
7
- data.tar.gz: 6b416859dae5af273445ab39185e667deb5a6503864042bcc9bc84997b33c1e0813780431402a908db50a90f16c86f5ed9f01e24835deccd97e73ec8c11ea72e
6
+ metadata.gz: 31df562ca6a0e07e80d90c74bf0713da88c8491dc9112afd76209fcc97f2038cb61af0cbba0bf3ec3f1c23913f4f09c14c8f1fc8d140c392a70f5e3e9ee20dfc
7
+ data.tar.gz: 6de7192ed4b3a9f803aa8c7526ed6186bcb34aef24698b65d4665714112464504f9bda7e7caa2be38dffa964c4b8bf888ba3235a7176aefb54323587467ee41c
@@ -3,7 +3,6 @@ require '../lib/smartystreets_ruby_sdk/static_credentials'
3
3
  require '../lib/smartystreets_ruby_sdk/client_builder'
4
4
  require '../lib/smartystreets_ruby_sdk/international_autocomplete/lookup'
5
5
  require '../lib/smartystreets_ruby_sdk/international_autocomplete/client'
6
- require '../lib/smartystreets_ruby_sdk/international_autocomplete/international_geolocation_type'
7
6
 
8
7
  class InternationalAutocompleteExample
9
8
  Lookup = SmartyStreets::InternationalAutocomplete::Lookup
@@ -32,7 +31,6 @@ class InternationalAutocompleteExample
32
31
  lookup = Lookup.new('Louis')
33
32
  lookup.country = "FRA"
34
33
  lookup.locality = "Paris"
35
- lookup.geolocation = SmartyStreets::InternationalAutocomplete::InternationalGeolocationType::NONE
36
34
 
37
35
  suggestions = client.send(lookup) # The client will also return the suggestions directly
38
36
 
@@ -41,7 +39,11 @@ class InternationalAutocompleteExample
41
39
  puts
42
40
 
43
41
  suggestions.each do |suggestion|
44
- puts "#{suggestion.street} #{suggestion.locality}, #{suggestion.country_iso3}"
42
+ if suggestion.address_text
43
+ puts "#{suggestion.entries} #{suggestion.address_text}, #{suggestion.address_id}"
44
+ else
45
+ puts "#{suggestion.street} #{suggestion.locality}, #{suggestion.country_iso3}"
46
+ end
45
47
  end
46
48
 
47
49
  end
@@ -14,6 +14,7 @@ require_relative 'us_zipcode/client'
14
14
  require_relative 'us_extract/client'
15
15
  require_relative 'us_autocomplete/client'
16
16
  require_relative 'international_street/client'
17
+ require_relative 'international_autocomplete/client'
17
18
  require_relative 'us_reverse_geo/client'
18
19
  require_relative 'us_autocomplete_pro/client'
19
20
 
@@ -23,7 +24,7 @@ module SmartyStreets
23
24
  # These methods are chainable, so you can usually get set up with one line of code.
24
25
  class ClientBuilder
25
26
  INTERNATIONAL_STREET_API_URL = 'https://international-street.api.smarty.com/verify'.freeze
26
- INTERNATIONAL_AUTOCOMPLETE_API_URL = "https://international-autocomplete.api.smarty.com/lookup".freeze
27
+ INTERNATIONAL_AUTOCOMPLETE_API_URL = "https://international-autocomplete.api.smarty.com/v2/lookup".freeze
27
28
  US_AUTOCOMPLETE_API_URL = 'https://us-autocomplete.api.smarty.com/suggest'.freeze
28
29
  US_AUTOCOMPLETE_PRO_API_URL = 'https://us-autocomplete-pro.api.smarty.com/lookup'.freeze
29
30
  US_EXTRACT_API_URL = 'https://us-extract.api.smarty.com/'.freeze
@@ -13,8 +13,8 @@ module SmartyStreets
13
13
 
14
14
  # Sends a Lookup object to the International Autocomplete API and stores the result in the Lookup's result field.
15
15
  def send(lookup)
16
- if not lookup or not lookup.search
17
- raise SmartyStreets::SmartyError, 'Send() must be passed a Lookup with the prefix field set.'
16
+ if !lookup || (!lookup.search && !lookup.address_id)
17
+ raise SmartyStreets::SmartyError, 'Send() must be passed a Lookup with country set, and search or address_id set.'
18
18
  end
19
19
 
20
20
  request = build_request(lookup)
@@ -32,18 +32,15 @@ module SmartyStreets
32
32
  def build_request(lookup)
33
33
  request = Request.new
34
34
 
35
+ unless lookup.address_id.nil?
36
+ request.url_prefix = '/' + lookup.address_id
37
+ end
38
+
35
39
  add_parameter(request, 'search', lookup.search)
36
40
  add_parameter(request, 'country', lookup.country)
37
41
  add_parameter(request, 'max_results', lookup.max_results.to_s)
38
- add_parameter(request, 'distance', lookup.distance.to_s)
39
- if lookup.geolocation != InternationalGeolocationType::NONE && lookup.geolocation != nil
40
- add_parameter(request, 'geolocation', lookup.geolocation)
41
- end
42
- add_parameter(request, 'include_only_administrative_area', lookup.administrative_area)
43
42
  add_parameter(request, 'include_only_locality', lookup.locality)
44
43
  add_parameter(request, 'include_only_postal_code', lookup.postal_code)
45
- add_parameter(request, 'latitude', lookup.latitude.to_s)
46
- add_parameter(request, 'longitude', lookup.longitude.to_s)
47
44
 
48
45
  request
49
46
  end
@@ -6,20 +6,16 @@ module SmartyStreets
6
6
  # of the lookup after it comes back from the API.
7
7
  class Lookup < JSONAble
8
8
 
9
- attr_accessor :result, :search, :country, :max_results, :distance, :geolocation, :administrative_area, :locality, :postal_code, :latitude, :longitude
9
+ attr_accessor :result, :search, :address_id, :country, :max_results, :locality, :postal_code
10
10
 
11
- def initialize(search = nil, country = nil, max_results = nil, distance = nil, geolocation = nil, administrative_area = nil, locality = nil, postal_code = nil, latitude = nil, longitude = nil)
11
+ def initialize(search = nil, address_id = nil, country = nil, max_results = nil, locality = nil, postal_code = nil)
12
12
  @result = []
13
13
  @search = search
14
+ @address_id = address_id
14
15
  @country = country
15
16
  @max_results = max_results
16
- @distance = distance
17
- @geolocation = geolocation
18
- @administrative_area = administrative_area
19
17
  @locality = locality
20
18
  @postal_code = postal_code
21
- @latitude = latitude
22
- @longitude = longitude
23
19
  end
24
20
  end
25
21
  end
@@ -2,16 +2,18 @@ module SmartyStreets
2
2
  module InternationalAutocomplete
3
3
  class Suggestion
4
4
 
5
- attr_reader :street, :locality, :administrative_area, :super_administrative_area, :sub_administrative_area, :postal_code, :country_iso3
5
+ attr_reader :street, :locality, :administrative_area, :postal_code, :country_iso3, :entries, :address_text, :address_id
6
6
 
7
7
  def initialize(obj)
8
8
  @street = obj.fetch('street', nil)
9
9
  @locality = obj.fetch('locality', nil)
10
10
  @administrative_area = obj.fetch('administrative_area', nil)
11
- @super_administrative_area = obj.fetch('super_administrative_area', nil)
12
- @sub_administrative_area = obj.fetch('sub_administrative_area', nil)
13
11
  @postal_code = obj.fetch('postal_code', nil)
14
12
  @country_iso3 = obj.fetch('country_iso3', nil)
13
+ # v2 fields
14
+ @entries = obj.fetch('entries', nil)
15
+ @address_text = obj.fetch('address_text', nil)
16
+ @address_id = obj.fetch('address_id', nil)
15
17
  end
16
18
  end
17
19
  end
@@ -0,0 +1,9 @@
1
+ require_relative './international_autocomplete/lookup'
2
+ require_relative './international_autocomplete/international_geolocation_type'
3
+ require_relative './international_autocomplete/suggestion'
4
+ require_relative './international_autocomplete/client'
5
+
6
+ module SmartyStreets
7
+ module InternationalAutocomplete
8
+ end
9
+ end
@@ -6,7 +6,11 @@ module SmartyStreets
6
6
  end
7
7
 
8
8
  def send(request)
9
- request.url_prefix = @url_prefix
9
+ if request.url_prefix.nil?
10
+ request.url_prefix = @url_prefix
11
+ else
12
+ request.url_prefix = @url_prefix + request.url_prefix
13
+ end
10
14
 
11
15
  @inner.send(request)
12
16
  end
@@ -1,3 +1,3 @@
1
1
  module SmartyStreets
2
- VERSION = '5.15.3' # DO NOT EDIT (this is updated by a build job when a new release is published)
2
+ VERSION = '5.16.0' # DO NOT EDIT (this is updated by a build job when a new release is published)
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartystreets_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.15.3
4
+ version: 5.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SmartyStreets SDK Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-07 00:00:00.000000000 Z
11
+ date: 2023-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -106,8 +106,8 @@ files:
106
106
  - lib/smartystreets_ruby_sdk/custom_header_sender.rb
107
107
  - lib/smartystreets_ruby_sdk/errors.rb
108
108
  - lib/smartystreets_ruby_sdk/exceptions.rb
109
+ - lib/smartystreets_ruby_sdk/international_autocomplete.rb
109
110
  - lib/smartystreets_ruby_sdk/international_autocomplete/client.rb
110
- - lib/smartystreets_ruby_sdk/international_autocomplete/international_geolocation_type.rb
111
111
  - lib/smartystreets_ruby_sdk/international_autocomplete/lookup.rb
112
112
  - lib/smartystreets_ruby_sdk/international_autocomplete/suggestion.rb
113
113
  - lib/smartystreets_ruby_sdk/international_street.rb
@@ -1,11 +0,0 @@
1
- module SmartyStreets
2
- module InternationalAutocomplete
3
- module InternationalGeolocationType
4
- ADMIN_AREA = 'adminarea'
5
- LOCALITY = 'locality'
6
- POSTAL_CODE = 'postalcode'
7
- GEOCODES = 'geocodes'
8
- NONE = 'null'
9
- end
10
- end
11
- end