class Lita::Handlers::AlexaNewsRecorder
Public Instance Methods
alexa_response(message)
click to toggle source
# File lib/lita/handlers/alexa_news_recorder.rb, line 29 def alexa_response(message) { "version": "1.0", "sessionAttributes": { }, "response": { "outputSpeech": { "type": "PlainText", "text": "Added your message to Lita's flash briefing: #{message}" }, "card": { "type": "Simple", "title": "Recorded flash message", "content": "Added your message to Lita's flash briefing: #{message}" }, "shouldEndSession": true } } end
extract_message(payload)
click to toggle source
# File lib/lita/handlers/alexa_news_recorder.rb, line 20 def extract_message(payload) parsed = JSON.parse(payload) value = parsed.dig('request', 'intent', 'slots', 'Message', 'value') raise ArgumentError if value.nil? value end
record_message(request, response)
click to toggle source
Rack::Request, Rack::Response
# File lib/lita/handlers/alexa_news_recorder.rb, line 10 def record_message(request, response) Lita.logger.debug(request) message = extract_message(request.body.string) robot.trigger(:save_alexa_message, username: 'Alexa News Recorder', message: message) response.write JSON.dump(alexa_response(message)) end