Class: AlexaRuby::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/alexa_ruby/session.rb

Overview

Class handles the session object in request

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session) ⇒ Session

Initialize new user session

Parameters:

  • session (JSON)

    part of json request from Amazon with user session



9
10
11
12
13
14
15
16
17
18
# File 'lib/alexa_ruby/session.rb', line 9

def initialize(session)
  if session.nil? || session[:new].nil? || session[:sessionId].nil?
    raise ArgumentError, 'Invalid Session'
  end

  @new = session[:new]
  @session_id = session[:sessionId]
  @attributes = session[:attributes].nil? ? {} : session[:attributes]
  @user = session[:user]
end

Instance Attribute Details

#attributesObject

Returns the value of attribute attributes.



4
5
6
# File 'lib/alexa_ruby/session.rb', line 4

def attributes
  @attributes
end

#newObject

Returns the value of attribute new.



4
5
6
# File 'lib/alexa_ruby/session.rb', line 4

def new
  @new
end

#session_idObject

Returns the value of attribute session_id.



4
5
6
# File 'lib/alexa_ruby/session.rb', line 4

def session_id
  @session_id
end

#userObject

Returns the value of attribute user.



4
5
6
# File 'lib/alexa_ruby/session.rb', line 4

def user
  @user
end

Instance Method Details

#access_tokenString

Get user access token

Returns:

  • (String)

    Amazon user access token



44
45
46
# File 'lib/alexa_ruby/session.rb', line 44

def access_token
  @user[:accessToken] if @user
end

#attributes?Boolean

Session attributes present?

Returns:

  • (Boolean)


51
52
53
# File 'lib/alexa_ruby/session.rb', line 51

def attributes?
  !@attributes.empty?
end

#new?Boolean

Is it a new user session?

Returns:

  • (Boolean)


23
24
25
# File 'lib/alexa_ruby/session.rb', line 23

def new?
  @new
end

#user_defined?Boolean

Is user defined?

Returns:

  • (Boolean)


30
31
32
# File 'lib/alexa_ruby/session.rb', line 30

def user_defined?
  !@user.nil? || !@user[:userId].nil?
end

#user_idString

Get user ID

Returns:

  • (String)

    Amazon user ID



37
38
39
# File 'lib/alexa_ruby/session.rb', line 37

def user_id
  @user[:userId] if @user
end