class AlexaToolbox::Address
Handles the retrieving address information about a device.
Attributes
app_location[RW]
consent_token[RW]
device_id[RW]
full_address[RW]
json[R]
Public Class Methods
new(consent_token = nil, device_id = nil, app_location = "US", full_address = false)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 8 def initialize (consent_token = nil, device_id = nil, app_location = "US", full_address = false) @consent_token = consent_token @device_id = device_id @country_code = nil @postal_code = nil @city = nil @state_or_region = nil @address_line_1 = nil @address_line_2 = nil @address_line_3 = nil @district_or_county = nil @status = nil @full_address = full_address @app_location = app_location @json = nil end
Public Instance Methods
add_device(device)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 34 def add_device(device) @device_id = device end
add_request(request)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 25 def add_request(request) @consent_token = request.session.consent_token @device_id = request.session.device_id end
add_token(token)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 30 def add_token(token) @consent_token = token end
base_uri()
click to toggle source
# File lib/alexa_toolbox/address.rb, line 93 def base_uri case self.app_location when "US" return "https://api.amazonalexa.com" when "UK" return "https://api.eu.amazonalexa.com" when "DE" return "https://api.eu.amazonalexa.com" else return nil end end
execute_request(endpoint,token)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 68 def execute_request(endpoint,token) uri = URI(endpoint) Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') do |http| request = Net::HTTP::Get.new(uri) request['Authorization'] = token response = http.request(request) self.status = response.code self.json = response.body if response.code == 200 res_body = response.body @country_code = res_body.key?("countryCode") ? res_body["countryCode"] : self.country_code @postal_code = res_body.key?("postalCode") ? res_body["postalCode"] : self.postal_code @city = res_body.key?("city") ? res_body["city"] : self.city @state_or_region = res_body.key?("stateOrRegion") ? res_body["stateOrRegion"] : self.state_or_region @address_line_1 = res_body.key?("addressLine1") ? res_body["addressLine1"] : self.address_line_1 @address_line_2 = res_body.key?("addressLine2") ? res_body["addressLine2"] : self.address_line_2 @address_line_3 = res_body.key?("addressLine3") ? res_body["addressLine3"] : self.address_line_3 @district_or_county = res_body.key?("districtOrCounty") ? res_body["districtOrCounty"] : self.district_or_county else end end end
retrieve_full_address(consent_token = nil, device_id = nil)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 38 def retrieve_full_address(consent_token = nil, device_id = nil) token = consent_token.nil? ? @consent_token : consent_token device = device_id.nil? ? @device_id : device_id if !token.nil? && !device.nil? if self.base_uri.nil? raise ArgumentError, 'Invalid Request, Invalid app_location set' else full_uri = self.base_uri + "/v1/devices/" + device + "/settings/address" self.execute_request(full_uri,token) end else raise ArgumentError, 'Invalid Request, No Token or Device' end end
retrieve_partial_address(consent_token = nil, device_id = nil)
click to toggle source
# File lib/alexa_toolbox/address.rb, line 53 def retrieve_partial_address(consent_token = nil, device_id = nil) token = consent_token.nil? ? @consent_token : consent_token device = device_id.nil? ? @device_id : device_id if !token.nil? && !device.nil? if self.base_uri.nil? raise ArgumentError, 'Invalid Request, Invalid app_location set' else full_uri = self.base_uri + "/v1/devices/" + device + "/settings/address/countryAndPostalCode" self.execute_request(full_uri,token) end else raise ArgumentError, 'Invalid Request, No Token or Device' end end