class AlexaRuby::IntentRequest
IntentRequest
class implements Alexa
“IntentRequest” request type
Attributes
confirmation_status[R]
dialog_state[R]
intent_name[R]
slots[R]
Public Class Methods
new(request)
click to toggle source
Initialize new Intent request
@param request [Hash] valid request from Amazon Alexa
service
Calls superclass method
AlexaRuby::BaseRequest::new
# File lib/alexa_ruby/request/intent_request.rb, line 9 def initialize(request) @type = :intent super if @req[:request][:intent].nil? raise ArgumentError, 'Intent must be defined' end @intent = @req[:request][:intent] @dialog_state = define_dialog_state @intent_name = @intent[:name] @confirmation_status = define_confirmation_status parse_slots unless @intent[:slots].nil? end
Private Instance Methods
define_confirmation_status()
click to toggle source
Define user confirmation status
@return [Symbol] current confirmation status
# File lib/alexa_ruby/request/intent_request.rb, line 41 def define_confirmation_status case @intent[:confirmationStatus] when 'NONE' :unknown when 'CONFIRMED' :confirmed when 'DENIED' :denied end end
define_dialog_state()
click to toggle source
Define current dialog state
@return [Symbol] current dialog state
# File lib/alexa_ruby/request/intent_request.rb, line 27 def define_dialog_state case @req[:request][:dialogState] when 'STARTED' :started when 'IN_PROGRESS' :in_progress when 'COMPLETED' :completed end end
parse_slots()
click to toggle source
Parse slots and initialize each slot
# File lib/alexa_ruby/request/intent_request.rb, line 53 def parse_slots @slots = [] @intent[:slots].each do |_, v| @slots << Slot.new(v) end end