Module: ZipCodeServices

Defined in:
lib/zipcodeservices.rb,
lib/zipcodeservices/version.rb

Constant Summary collapse

VERSION =
'0.0.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.apikeyObject

attr_accessor :base_uri



12
13
14
# File 'lib/zipcodeservices.rb', line 12

def apikey
  @apikey
end

Class Method Details

.cities(province_id) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/zipcodeservices.rb', line 99

def cities(province_id)
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/cities.svc/#{apikey}/#{province_id}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j["GetCitiesByProvinceResult"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.cities_by_state_and_country(province_id, country_id) ⇒ Object



113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/zipcodeservices.rb', line 113

def cities_by_state_and_country(province_id, country_id)
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/cities.svc/#{apikey}/#{province_id}/#{country_id}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j["GetCitiesByProvinceAndCountryResult"] == nil # NOTE: also happens when a province id is not valid for a country
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.countriesObject



70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/zipcodeservices.rb', line 70

def countries
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/countries.svc/#{apikey}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j["GetCountriesResult"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.distance_between_zipcodes(zip1, zip2) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/zipcodeservices.rb', line 56

def distance_between_zipcodes(zip1, zip2) 
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/GetDistanceBetweenZipCodes?apikey=#{apikey}&zipcode1=#{zip1}&zipcode2=#{zip2}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j.first[1]["ZipCode1"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.radius(zip, rad) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/zipcodeservices.rb', line 28

def radius(zip, rad)
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/#{apikey}/#{zip}/#{rad}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j["RetrieveZipCodesInRadiusResult"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.radius_by_latlong(lat, long, rad) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/zipcodeservices.rb', line 42

def radius_by_latlong(lat, long, rad)
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/GetZipCodesInRadiusLatLong?apikey=#{apikey}&latitude=#{lat}&longitude=#{lon}&radius=#{rad}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j["GetZipCodesInRadiusOfLatLongResult"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.states(country_id) ⇒ Object Also known as: provinces



84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/zipcodeservices.rb', line 84

def states(country_id)
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/provinces.svc/#{apikey}/#{country_id}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j["GetAllProvincesByCountryIdResult"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.zipcode(zip) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/zipcodeservices.rb', line 14

def zipcode(zip) 
  #/{apikey}/{zipcode}
  response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/#{apikey}/#{zip}") 
  if response.code == 200 
    j = JSON::parse(response.body)
    raise "BAD API KEY" if j.first[1]["City"] == nil 
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end