Module: AlexaRuby
- Defined in:
- lib/alexa_ruby.rb,
lib/alexa_ruby/request.rb,
lib/alexa_ruby/session.rb,
lib/alexa_ruby/version.rb,
lib/alexa_ruby/response.rb,
lib/alexa_ruby/response/card.rb,
lib/alexa_ruby/response/audio_player.rb,
lib/alexa_ruby/request/intent_request.rb,
lib/alexa_ruby/request/launch_request.rb,
lib/alexa_ruby/request/intent_request/slot.rb,
lib/alexa_ruby/request/audio_player_request.rb,
lib/alexa_ruby/request/session_ended_request.rb
Overview
Session end request class.
Defined Under Namespace
Classes: AudioPlayer, AudioPlayerRequest, Card, IntentRequest, LaunchRequest, Request, Response, Session, SessionEndedRequest, Slot
Constant Summary collapse
- VERSION =
'0.2.0'.freeze
Class Method Summary collapse
-
.build_request(json_request) ⇒ Object
Builds a new request for Alexa.
-
.define_request(json) ⇒ Object
Define proper request class and instantinate it.
-
.print_json(json) ⇒ Object
Prints some JSON.
-
.print_version ⇒ Object
Prints the Gem version.
-
.valid_request?(json) ⇒ Boolean
Check if it is a valid Amazon Alexa request.
Class Method Details
.build_request(json_request) ⇒ Object
Builds a new request for Alexa
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/alexa_ruby.rb', line 30 def build_request(json_request) json = load_json(json_request) unless AlexaRuby.valid_request?(json) raise ArgumentError, 'Invalid Alexa Request' end @request = define_request(json) raise ArgumentError, 'Invalid Request Type' if @request.nil? @request end |
.define_request(json) ⇒ Object
Define proper request class and instantinate it
60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/alexa_ruby.rb', line 60 def define_request(json) case json[:request][:type] when /Launch/ LaunchRequest.new(json) when /Intent/ IntentRequest.new(json) when /SessionEnded/ SessionEndedRequest.new(json) when /AudioPlayer/ AudioPlayerRequest.new(json) end end |
.print_json(json) ⇒ Object
Prints some JSON
17 18 19 |
# File 'lib/alexa_ruby.rb', line 17 def print_json(json) p json end |
.print_version ⇒ Object
Prints the Gem version
22 23 24 |
# File 'lib/alexa_ruby.rb', line 22 def print_version p AlexaRuby::VERSION end |
.valid_request?(json) ⇒ Boolean
Check if it is a valid Amazon Alexa request
46 47 48 49 50 51 52 53 54 |
# File 'lib/alexa_ruby.rb', line 46 def valid_request?(json) session = if json[:request].nil? || /AudioPlayer/.match(json[:request][:type]) true else !json[:session].nil? end !json.nil? && session && !json[:version].nil? && !json[:request].nil? end |