alexa_rubykit 0.0.12 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/alexa_rubykit/request.rb +10 -1
- data/lib/alexa_rubykit/session.rb +28 -0
- data/lib/alexa_rubykit/session_ended_request.rb +1 -1
- data/lib/alexa_rubykit/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d49303d60a2134da9da5e4ccf4842baf3b521443
|
4
|
+
data.tar.gz: 6cf666217f8c107c6ed51c3a0e1c9bb7d6a4c809
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec42a228c07e5098100d905cc811d230ab2b0bc3d05ef796172a6669035631ef742e05800ea2cc2c385868b35204baded324a373f4363c7780217a949b9ee0f1
|
7
|
+
data.tar.gz: cbffa2be42fc27a7045e9c2e75270dfb2204661c83211af6da46d5ef7969975089ecf07911bb7b67c44daf4d8b56182fcc1b06f7831594e08f6d0b8f1e9cf3bd
|
data/Gemfile.lock
CHANGED
@@ -5,12 +5,19 @@ module AlexaRubykit
|
|
5
5
|
# - SessionEndedRequest: Session has ended.
|
6
6
|
class Request
|
7
7
|
require 'json'
|
8
|
-
|
8
|
+
require 'alexa_rubykit/session'
|
9
|
+
attr_accessor :version, :response, :shouldEndSession, :type, :session
|
10
|
+
|
11
|
+
def add_session(session)
|
12
|
+
@session = session
|
13
|
+
end
|
9
14
|
end
|
10
15
|
|
11
16
|
def self.build_request(json_request)
|
12
17
|
raise ArgumentError, 'Invalid Alexa Request.' unless AlexaRubykit.valid_alexa?(json_request)
|
13
18
|
@request = nil
|
19
|
+
# TODO: We probably need better session handling.
|
20
|
+
session = AlexaRubykit::Session.new(json_request['session'])
|
14
21
|
case json_request['request']['type']
|
15
22
|
when /Launch/
|
16
23
|
@request = LaunchRequest.new(json_request['request']['requestId'])
|
@@ -21,9 +28,11 @@ module AlexaRubykit
|
|
21
28
|
else
|
22
29
|
raise ArgumentError, 'Invalid Request Type.'
|
23
30
|
end
|
31
|
+
@request.add_session(session)
|
24
32
|
@request
|
25
33
|
end
|
26
34
|
|
35
|
+
|
27
36
|
# Let's monkey patch Hash.
|
28
37
|
refine Hash do
|
29
38
|
# Take keys of hash and transform those to a symbols
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module AlexaRubykit
|
2
|
+
# Handles the session object in request.
|
3
|
+
class Session
|
4
|
+
attr_accessor :new, :session_id, :attributes, :user
|
5
|
+
def initialize (session)
|
6
|
+
raise ArgumentError, 'Invalid Session' if session.nil? || session['new'].nil? || session['sessionId'].nil?
|
7
|
+
@new = session['new']
|
8
|
+
@session_id = session['sessionId']
|
9
|
+
session['attributes'].nil? ? @attributes = Hash.new : @attributes = session['attributes']
|
10
|
+
@user = session['user']
|
11
|
+
end
|
12
|
+
|
13
|
+
# Returns whether this is a new session or not.
|
14
|
+
def new?
|
15
|
+
@new
|
16
|
+
end
|
17
|
+
|
18
|
+
# Returns true if a user is defined.
|
19
|
+
def user_defined?
|
20
|
+
!@user.nil? || !@user['userId'].nil?
|
21
|
+
end
|
22
|
+
|
23
|
+
# Check to see if attributes are present.
|
24
|
+
def has_attributes?
|
25
|
+
!@attributes.empty?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alexa_rubykit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damian Finol
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- lib/alexa_rubykit/launch_request.rb
|
98
98
|
- lib/alexa_rubykit/request.rb
|
99
99
|
- lib/alexa_rubykit/response.rb
|
100
|
+
- lib/alexa_rubykit/session.rb
|
100
101
|
- lib/alexa_rubykit/session_ended_request.rb
|
101
102
|
- lib/alexa_rubykit/version.rb
|
102
103
|
homepage: https://github.com/damianFC/alexa-rubykit
|