Class: AlexaObjects::EchoRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/alexa_objects/echo_request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response_hash) ⇒ EchoRequest

Returns a new instance of EchoRequest.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/alexa_objects/echo_request.rb', line 7

def initialize(response_hash)
  @attributes = response_hash["session"]["attributes"] ? response_hash["session"]["attributes"] : {}

  session = response_hash["session"]
  request = response_hash["request"]

  if session
    @user_id = session["user"]["userId"]
    @access_token = session["user"]["accessToken"]
    @application_id = session["application"]["applicationId"]
  end

  if request
    @request_type = request["type"]
    @timestamp = request["timestamp"]
    @session_new = request["new"]

    if request["intent"]
      @intent_name  =  request["intent"]["name"]
      @slots      = build_struct(request["intent"]["slots"])
    end
  end
end

Instance Attribute Details

#access_tokenObject (readonly)

Returns the value of attribute access_token.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def access_token
  @access_token
end

#application_idObject (readonly)

Returns the value of attribute application_id.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def application_id
  @application_id
end

#attributesObject

Returns the value of attribute attributes.



4
5
6
# File 'lib/alexa_objects/echo_request.rb', line 4

def attributes
  @attributes
end

#intent_nameObject (readonly)

Returns the value of attribute intent_name.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def intent_name
  @intent_name
end

#request_typeObject (readonly)

Returns the value of attribute request_type.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def request_type
  @request_type
end

#session_newObject (readonly) Also known as: session_new?

Returns the value of attribute session_new.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def session_new
  @session_new
end

#slotsObject (readonly)

Returns the value of attribute slots.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def slots
  @slots
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def timestamp
  @timestamp
end

#user_idObject (readonly)

Returns the value of attribute user_id.



3
4
5
# File 'lib/alexa_objects/echo_request.rb', line 3

def user_id
  @user_id
end

Instance Method Details

#filled_slotsObject



31
32
33
# File 'lib/alexa_objects/echo_request.rb', line 31

def filled_slots
  @slots.select { |slot| slot != nil}
end

#intent_request?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/alexa_objects/echo_request.rb', line 35

def intent_request?
  request_type == "IntentRequest"
end

#launch_request?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/alexa_objects/echo_request.rb', line 39

def launch_request?
  request_type == "LaunchRequest"
end

#session_ended_request?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/alexa_objects/echo_request.rb', line 43

def session_ended_request?
  request_type == "SessionEndedRequest"
end