Skip to content

Commit ea982cc

Browse files
authored
Integrated the business_name input field (#82)
1 parent 5cef64d commit ea982cc

6 files changed

Lines changed: 124 additions & 6 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ us_autocomplete_pro_api:
3737
cd examples && ruby us_autocomplete_pro_example.rb
3838

3939
us_enrichment_api:
40-
cd examples && ruby us_enrichment_example.rb && ruby us_enrichment_business_example.rb && ruby us_enrichment_etag_example.rb
40+
cd examples && ruby us_enrichment_example.rb && ruby us_enrichment_business_example.rb && ruby us_enrichment_etag_example.rb && ruby us_enrichment_business_name_search_example.rb
4141

4242
us_extract_api:
4343
cd examples && ruby us_extract_example.rb
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
require '../lib/smartystreets_ruby_sdk/static_credentials'
2+
require '../lib/smartystreets_ruby_sdk/shared_credentials'
3+
require '../lib/smartystreets_ruby_sdk/basic_auth_credentials'
4+
require '../lib/smartystreets_ruby_sdk/client_builder'
5+
require '../lib/smartystreets_ruby_sdk/us_enrichment/lookup'
6+
7+
class USEnrichmentBusinessNameSearchExample
8+
def run
9+
id = ENV['SMARTY_AUTH_ID']
10+
token = ENV['SMARTY_AUTH_TOKEN']
11+
credentials = SmartyStreets::BasicAuthCredentials.new(id, token)
12+
13+
client = SmartyStreets::ClientBuilder.new(credentials).build_us_enrichment_api_client
14+
15+
business_name = "delta air"
16+
17+
lookup = SmartyStreets::USEnrichment::Lookup.new
18+
lookup.business_name = business_name
19+
lookup.city = "atlanta"
20+
21+
begin
22+
summary_results = client.send_business_lookup(lookup)
23+
rescue SmartyStreets::SmartyError => err
24+
puts err
25+
return
26+
end
27+
28+
if summary_results.nil? || summary_results.empty?
29+
puts "No response returned for business-name search"
30+
return
31+
end
32+
33+
summary = summary_results[0]
34+
if summary.businesses.nil? || summary.businesses.empty?
35+
puts "No businesses found for this business name search"
36+
return
37+
end
38+
39+
puts "Summary results for BusinessName: #{business_name}"
40+
summary.businesses.each do |biz|
41+
puts " - #{biz.company_name} (ID: #{biz.business_id})"
42+
end
43+
44+
first = summary.businesses[0]
45+
puts
46+
puts "Fetching details for business: #{first.company_name} (ID: #{first.business_id})"
47+
48+
begin
49+
detail_result = client.send_business_detail_lookup(first.business_id)
50+
rescue SmartyStreets::SmartyError => err
51+
puts err
52+
return
53+
end
54+
55+
if detail_result.nil?
56+
puts "No detail result returned"
57+
return
58+
end
59+
60+
puts
61+
puts "Detail result:"
62+
puts " smarty_key: #{detail_result.smarty_key}"
63+
puts " data_set_name: #{detail_result.data_set_name}"
64+
puts " business_id: #{detail_result.business_id}"
65+
attrs = detail_result.attributes
66+
return if attrs.nil?
67+
attrs.instance_variables.each do |var|
68+
value = attrs.instance_variable_get(var)
69+
next if value.nil?
70+
puts " #{var.to_s.delete('@')}: #{value}"
71+
end
72+
end
73+
end
74+
75+
example = USEnrichmentBusinessNameSearchExample.new
76+
example.run

examples/us_enrichment_example.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def print_object(label, obj)
154154
end
155155

156156
def one_liner(obj)
157-
obj.instance_variables.filter_map do |var|
157+
obj.instance_variables.filter do |var|
158158
value = obj.instance_variable_get(var)
159159
"#{var.to_s.delete('@')}=#{value}" unless value.nil?
160160
end.join(' ')

lib/smartystreets_ruby_sdk/us_enrichment/client.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ def send_generic_lookup(lookup, data_set, data_sub_set = nil)
114114
private
115115

116116
def __send(lookup)
117-
if lookup.nil? || (blank?(lookup.smarty_key) && blank?(lookup.street) && blank?(lookup.freeform))
118-
raise SmartyError.new("Lookup requires one of 'smartykey', 'street', or 'freeform' to be set")
117+
if lookup.nil? || (blank?(lookup.smarty_key) && blank?(lookup.street) && blank?(lookup.freeform) && blank?(lookup.business_name))
118+
raise SmartyError.new("Lookup requires one of 'smarty_key', 'street', 'freeform', or 'business_name' to be set")
119119
end
120120

121121
smarty_request = Request.new
@@ -135,6 +135,7 @@ def __send(lookup)
135135
add_parameter(smarty_request, 'city', lookup.city)
136136
add_parameter(smarty_request, 'state', lookup.state)
137137
add_parameter(smarty_request, 'zipcode', lookup.zipcode)
138+
add_parameter(smarty_request, 'business_name', lookup.business_name)
138139
else
139140
if (lookup.data_sub_set.nil?)
140141
smarty_request.url_components = '/' + lookup.smarty_key + '/' + lookup.data_set

lib/smartystreets_ruby_sdk/us_enrichment/lookup.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ def add_exclude_attribute(attribute)
2828
end
2929

3030
class Lookup < LookupBase
31-
attr_accessor :smarty_key, :data_set, :data_sub_set, :freeform, :street, :city, :state, :zipcode
31+
attr_accessor :smarty_key, :data_set, :data_sub_set, :freeform, :street, :city, :state, :zipcode, :business_name
3232

33-
def initialize(smarty_key=nil, data_set=nil, data_sub_set=nil, freeform=nil, street=nil, city=nil, state=nil, zipcode=nil, request_etag=nil, features=nil)
33+
def initialize(smarty_key=nil, data_set=nil, data_sub_set=nil, freeform=nil, street=nil, city=nil, state=nil, zipcode=nil, request_etag=nil, features=nil, business_name=nil)
3434
super()
3535
@smarty_key = smarty_key
3636
@data_set = data_set
@@ -42,6 +42,7 @@ def initialize(smarty_key=nil, data_set=nil, data_sub_set=nil, freeform=nil, str
4242
@zipcode = zipcode
4343
@request_etag = request_etag
4444
@features = features
45+
@business_name = business_name
4546
end
4647
end
4748

test/smartystreets_ruby_sdk/us_enrichment/test_business_summary.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,46 @@ def test_business_summary_lookup_with_freeform_builds_url
4444
assert_equal("street city state zipcode", sender.request.parameters["freeform"])
4545
end
4646

47+
def test_business_summary_lookup_with_business_name_search
48+
sender = RequestCapturingSender.new
49+
client = SmartyStreets::USEnrichment::Client.new(sender, FakeDeserializer.new(nil))
50+
51+
lookup = SmartyStreets::USEnrichment::Lookup.new
52+
lookup.freeform = "1600 Amphitheatre Pkwy, Mountain View, CA"
53+
lookup.business_name = "Google"
54+
lookup.city = "Mountain View"
55+
56+
client.send_business_lookup(lookup)
57+
assert_equal("/search/business", sender.request.url_components)
58+
assert_equal("1600 Amphitheatre Pkwy, Mountain View, CA", sender.request.parameters["freeform"])
59+
assert_equal("Google", sender.request.parameters["business_name"])
60+
assert_equal("Mountain View", sender.request.parameters["city"])
61+
end
62+
63+
def test_business_summary_lookup_without_business_name_omits_param
64+
sender = RequestCapturingSender.new
65+
client = SmartyStreets::USEnrichment::Client.new(sender, FakeDeserializer.new(nil))
66+
67+
lookup = SmartyStreets::USEnrichment::Lookup.new
68+
lookup.freeform = "1600 Amphitheatre Pkwy, Mountain View, CA"
69+
70+
client.send_business_lookup(lookup)
71+
assert_equal("/search/business", sender.request.url_components)
72+
assert_nil(sender.request.parameters["business_name"])
73+
end
74+
75+
def test_business_summary_lookup_with_business_name_only
76+
sender = RequestCapturingSender.new
77+
client = SmartyStreets::USEnrichment::Client.new(sender, FakeDeserializer.new(nil))
78+
79+
lookup = SmartyStreets::USEnrichment::Lookup.new
80+
lookup.business_name = "Style Studio"
81+
82+
client.send_business_lookup(lookup)
83+
assert_equal("/search/business", sender.request.url_components)
84+
assert_equal("Style Studio", sender.request.parameters["business_name"])
85+
end
86+
4787
def test_business_summary_response_wraps_businesses
4888
obj = {
4989
'smarty_key' => 'key-1',

0 commit comments

Comments
 (0)