class Ralyxa::RequestEntities::Request
Constants
- INTENT_REQUEST_TYPE
Attributes
request[R]
Public Class Methods
new(original_request, user_class = Ralyxa::RequestEntities::User)
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 18 def initialize(original_request, user_class = Ralyxa::RequestEntities::User) validate_request(original_request) if Ralyxa.configuration.validate_requests? @request = JSON.parse(original_request.body.read) attempt_to_rewind_request_body(original_request) @user = user_class.build(@request) end
Public Instance Methods
intent_name()
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 27 def intent_name return @request['request']['type'] unless intent_request? @request['request']['intent']['name'] end
new_session?()
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 43 def new_session? @request['session']['new'] end
session_attribute(attribute_name)
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 51 def session_attribute(attribute_name) session_attributes[attribute_name] end
session_attributes()
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 47 def session_attributes @request['session']['attributes'] end
slot_id(slot_name)
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 36 def slot_id(slot_name) resolution = @request['request']['intent']['slots'][slot_name]['resolutions']['resolutionsPerAuthority'].select do |resolution| resolution['status']['code'] == 'ER_SUCCESS_MATCH' end resolution.first['values'].first['value']['id'] end
slot_value(slot_name)
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 32 def slot_value(slot_name) @request['request']['intent']['slots'][slot_name]['value'] end
Private Instance Methods
attempt_to_rewind_request_body(original_request)
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 65 def attempt_to_rewind_request_body(original_request) original_request.body&.rewind end
intent_request?()
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 57 def intent_request? @request['request']['type'] == INTENT_REQUEST_TYPE end
validate_request(request)
click to toggle source
# File lib/ralyxa/request_entities/request.rb, line 61 def validate_request(request) AlexaVerifier.valid!(request) end