class AlexaRuby::Context

Amazon Alexa request context - application, user and device info

Attributes

api_endpoint[R]
app_id[R]
audio_state[R]
device[R]
user[R]

Public Class Methods

new(context) click to toggle source

Initialize new Context object

@param context [Hash] request context parameters @raise [ArgumentError] if application ID, or user ID, or device ID are nil

# File lib/alexa_ruby/request/base_request/context.rb, line 10
def initialize(context)
  @app_id = get_app_id(context[:System][:application])
  raise ArgumentError, 'Missing application ID' unless @app_id

  @user = load_user(context[:System][:user])
  @device = load_device(context[:System][:device])
  @api_endpoint = context[:System][:apiEndpoint]
  @audio_state = load_audio_state(context[:AudioPlayer])
end

Private Instance Methods

get_app_id(app) click to toggle source

Get application ID

@param app [Hash] application parameters @return [String] application ID

# File lib/alexa_ruby/request/base_request/context.rb, line 26
def get_app_id(app)
  app[:applicationId] unless app[:applicationId].nil?
end
load_audio_state(params) click to toggle source

Initialize audio player state

@param params [Hash] audio player parameters @return [Object] new AudioState object instance

# File lib/alexa_ruby/request/base_request/context.rb, line 50
def load_audio_state(params)
  AudioState.new(params) unless params.nil?
end
load_device(params) click to toggle source

Initialize user device parameters

@param params [Hash] user device parameters @return [Object] new Device object instance

# File lib/alexa_ruby/request/base_request/context.rb, line 42
def load_device(params)
  Device.new(params)
end
load_user(params) click to toggle source

Initialize user parameters

@param params [Hash] user parameters @return [Object] new User object instance

# File lib/alexa_ruby/request/base_request/context.rb, line 34
def load_user(params)
  User.new(params)
end