class Alexa::Request
Attributes
body[RW]
params[RW]
Public Class Methods
new(request)
click to toggle source
# File lib/alexa/request.rb, line 5 def initialize(request) @req = request @body = request.body @params = if request.body.size > 0 request.body.rewind JSON.parse(request.body.read).with_indifferent_access else {} end end
Public Instance Methods
application_id()
click to toggle source
# File lib/alexa/request.rb, line 16 def application_id session.application_id end
cancel_request?()
click to toggle source
# File lib/alexa/request.rb, line 44 def cancel_request? intent_request? && intent_name == "AMAZON.CancelIntent" end
dialog_state()
click to toggle source
# File lib/alexa/request.rb, line 71 def dialog_state params["request"]["dialogState"] end
help_request?()
click to toggle source
# File lib/alexa/request.rb, line 40 def help_request? intent_request? && intent_name == "AMAZON.HelpIntent" end
intent_name()
click to toggle source
# File lib/alexa/request.rb, line 79 def intent_name return nil if !intent_request? params["request"]["intent"]["name"] end
intent_request?()
click to toggle source
# File lib/alexa/request.rb, line 28 def intent_request? type == "IntentRequest" end
launch_request?()
click to toggle source
# File lib/alexa/request.rb, line 32 def launch_request? type == "LaunchRequest" end
locale()
click to toggle source
# File lib/alexa/request.rb, line 84 def locale params["request"]["locale"] end
session()
click to toggle source
# File lib/alexa/request.rb, line 48 def session @_session ||= Alexa::Session.new(params["session"].dup) end
session_ended_request?()
click to toggle source
# File lib/alexa/request.rb, line 36 def session_ended_request? type == "SessionEndedRequest" end
slots()
click to toggle source
# File lib/alexa/request.rb, line 52 def slots @_slots ||= begin if intent_request? return [] if help_request? return [] if cancel_request? params["request"]["intent"]["slots"] .inject(HashWithIndifferentAccess.new) do |hash, slot| name = slot[0] data = slot[1] hash[name] = Alexa::Slot.new(data) hash end else [] end end end
type()
click to toggle source
# File lib/alexa/request.rb, line 24 def type params["request"]["type"] end
user_id()
click to toggle source
# File lib/alexa/request.rb, line 20 def user_id session.user_id end
valid?()
click to toggle source
# File lib/alexa/request.rb, line 75 def valid? Alexa.configuration.skill_ids.include?(application_id) end