class AlexaToolbox::Request
Echo can send 3 types of requests
-
LaunchRequest: The app was launched using phrasing such as ‘Alexa open __’.
-
IntentRequest: An intent was requested.
-
SessionEndedRequest:
Session
was closed either by user or timeout.
Attributes
audioplayer[R]
cause[R]
context[R]
error[R]
intent[R]
json[R]
locale[R]
options[R]
request_id[R]
session[R]
type[R]
version[R]
Public Class Methods
default_options()
click to toggle source
# File lib/alexa_toolbox/request.rb, line 15 def self.default_options @default_options ||= { :application_id => '' } end
new(json_request, options = {})
click to toggle source
# File lib/alexa_toolbox/request.rb, line 21 def initialize(json_request, options = {}) @options = options if options.key?(:application_id) @request_id = json_request[:request][:requestId] raise ArgumentError, 'Request ID not present' if @request_id.nil? @version = json_request.key?(:version) ? json_request[:version] : "" @locale = json_request.key?(:request) && json_request[:request].key?(:locale) ? json_request[:request][:locale] : "" @error = json_request.key?(:request) && json_request[:request].key?(:error) ? json_request[:request][:error] : "" @cause = json_request.key?(:request) && json_request[:request].key?(:cause) ? json_request[:request][:cause] : "" @json = json_request @type = json_request[:request][:type][0..10] == "AudioPlayer" ? "AudioPlayer" : json_request[:request][:type] @intent = @type == "IntentRequest" ? AlexaToolbox::Intent.new(json_request[:request][:intent]) : nil @audioplayer = @type == "AudioPlayer" ? AlexaToolbox::AudioPlayer.new(json_request[:request]) : nil @session = json_request.key?(:session) ? AlexaToolbox::Session.new(json_request[:session]) : nil @context = json_request.key?(:context) ? AlexaToolbox::Context.new(json_request[:context]) : nil end
Public Instance Methods
user_terminated?()
click to toggle source
# File lib/alexa_toolbox/request.rb, line 43 def user_terminated? if self.type != "SessionEndedRequest" return nil end return self.json[:request][:reason] == "USER_INITIATED" end
valid?()
click to toggle source
# File lib/alexa_toolbox/request.rb, line 39 def valid? self.options[:application_id] && ((!self.session.nil? && self.options[:application_id] == self.session.application_id) || (!self.context.nil? && self.options[:application_id] == self.context.application_id)) end