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.



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

def initialize(response_hash)
  session = response_hash["session"]
  request = response_hash["request"]
  if session
    @attributes = session["attributes"] ? session["attributes"] : {}
    @user_id = session["user"]["userId"] if session["user"]
    @access_token = session["user"]["accessToken"] if session["user"]
    @application_id = session["application"]["applicationId"] if session["application"]
  end

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

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

Instance Attribute Details

#access_tokenObject (readonly)

Returns the value of attribute access_token.



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

def access_token
  @access_token
end

#application_idObject (readonly)

Returns the value of attribute application_id.



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

def application_id
  @application_id
end

#attributesObject

Returns the value of attribute attributes.



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

def attributes
  @attributes
end

#intent_nameObject (readonly)

Returns the value of attribute intent_name.



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

def intent_name
  @intent_name
end

#request_typeObject (readonly)

Returns the value of attribute request_type.



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

def request_type
  @request_type
end

#session_newObject (readonly) Also known as: session_new?

Returns the value of attribute session_new.



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

def session_new
  @session_new
end

#slotsObject (readonly)

Returns the value of attribute slots.



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

def slots
  @slots
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



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

def timestamp
  @timestamp
end

#user_idObject (readonly)

Returns the value of attribute user_id.



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

def user_id
  @user_id
end

Instance Method Details

#filled_slotsObject



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

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

#intent_request?Boolean

Returns:

  • (Boolean)


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

def intent_request?
  request_type == "IntentRequest"
end

#launch_request?Boolean

Returns:

  • (Boolean)


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

def launch_request?
  request_type == "LaunchRequest"
end

#session_ended_request?Boolean

Returns:

  • (Boolean)


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

def session_ended_request?
  request_type == "SessionEndedRequest"
end