class AlexaRuby::Session
Amazon Alexa
user session
Attributes
attributes[R]
end_reason[R]
error[R]
id[R]
state[RW]
user[R]
Public Class Methods
new(session)
click to toggle source
Initialize new Session
@param session [Hash] session parameters @raise [ArgumentError] if user session data is absent
# File lib/alexa_ruby/request/base_request/session.rb, line 11 def initialize(session) @session = session raise ArgumentError, 'Empty user session' if invalid_session? @state = @session[:new] ? :new : :old @id = @session[:sessionId] @attributes = @session[:attributes] || {} @user = load_user unless @session[:user].nil? end
Public Instance Methods
end_reason=(reason)
click to toggle source
Set session end reason
@param reason [String] reason type from Amazon Alexa
request
# File lib/alexa_ruby/request/base_request/session.rb, line 24 def end_reason=(reason) @end_reason = case reason when 'USER_INITIATED' :user_quit when 'ERROR' :processing_error when 'EXCEEDED_MAX_REPROMPTS' :user_idle end end
error=(err)
click to toggle source
Set error parameters
@param err [Hash] error params
# File lib/alexa_ruby/request/base_request/session.rb, line 39 def error=(err) @error = { message: err[:message] } @error[:type] = case err[:type] when 'INVALID_RESPONSE' :invalid_alexa_ruby_response when 'DEVICE_COMMUNICATION_ERROR' :device_error when 'INTERNAL_ERROR' :runtime_error end end
Private Instance Methods
invalid_session?()
click to toggle source
Check if it is an invalid user session
@return [Boolean]
# File lib/alexa_ruby/request/base_request/session.rb, line 57 def invalid_session? @session.nil? end
load_user()
click to toggle source
Initialize user parameters
@return [Object] new User
object instance
# File lib/alexa_ruby/request/base_request/session.rb, line 64 def load_user User.new(@session[:user]) end