class AlexaWebService::Request
Attributes
access_token[R]
api_access_token[R]
api_endpoint[R]
application_id[R]
attributes[RW]
device_id[R]
intent_name[R]
request_hash[R]
request_id[R]
request_type[R]
session_new[R]
slots[R]
timestamp[R]
user_id[R]
Public Class Methods
new(request_hash)
click to toggle source
# File lib/alexa_web_service/request.rb, line 9 def initialize(request_hash) @request_hash = request_hash @api_access_token = request_hash["context"]["System"]["apiAccessToken"] @api_endpoint = request_hash["context"]["System"]["apiEndpoint"] @device_id = request_hash["context"]["System"]["device"]["deviceId"] @request_id = request_hash["request"]["requestId"] @request_type = request_hash["request"]["type"] @timestamp = request_hash["request"]["timestamp"] @session_new = request_hash["session"]["new"] @user_id = request_hash["session"]["user"]["userId"] @access_token = request_hash["session"]["user"]["accessToken"] @application_id = request_hash["session"]["application"]["applicationId"] @intent_name = get_intent_name @slots = get_slots @attributes = get_attributes end
Public Instance Methods
filled_slots()
click to toggle source
# File lib/alexa_web_service/request.rb, line 26 def filled_slots @slots.select { |slot| slot != nil} rescue [] end
intent_request?()
click to toggle source
# File lib/alexa_web_service/request.rb, line 30 def intent_request? request_type == "IntentRequest" end
launch_request?()
click to toggle source
# File lib/alexa_web_service/request.rb, line 34 def launch_request? request_type == "LaunchRequest" end
session_ended_request?()
click to toggle source
# File lib/alexa_web_service/request.rb, line 44 def session_ended_request? request_type == "SessionEndedRequest" end
session_new?()
click to toggle source
# File lib/alexa_web_service/request.rb, line 48 def session_new? session_new end
slot_hash()
click to toggle source
# File lib/alexa_web_service/request.rb, line 38 def slot_hash if request_hash["request"]["intent"] request_hash["request"]["intent"]["slots"] end end
Private Instance Methods
build_struct(hash)
click to toggle source
# File lib/alexa_web_service/request.rb, line 70 def build_struct(hash) if hash.nil? || hash.empty? nil else slot_names = hash.keys.map {|k| k.to_sym.downcase } slot_values = hash.values.map { |v| v["value"] } Struct.new(*slot_names).new(*slot_values) end end
get_attributes()
click to toggle source
# File lib/alexa_web_service/request.rb, line 66 def get_attributes request_hash["session"]["attributes"] ? request_hash["session"]["attributes"] : {} end
get_intent_name()
click to toggle source
# File lib/alexa_web_service/request.rb, line 54 def get_intent_name if request_hash["request"]["intent"] request_hash["request"]["intent"]["name"] end end
get_slots()
click to toggle source
# File lib/alexa_web_service/request.rb, line 60 def get_slots if request_hash["request"]["intent"] build_struct(request_hash["request"]["intent"]["slots"]) end end