Pārlūkot izejas kodu

Update twilio to be able to repeat messages

Lily Carpenter 10 gadi atpakaļ
vecāks
revīzija
1bc8cf5ee3

+ 9 - 4
twilio/app/controllers/twilio_controller.rb

@@ -11,15 +11,20 @@ class TwilioController < ApplicationController
11 11
   end
12 12
 
13 13
   def get_message
14
-    message_object = Message.find_by_id(params["Digits"])
14
+    id = params['message'] || params["Digits"]
15
+    message_object = Message.find_by_id(id)
15 16
     if message_object.nil?
16
-      message = "No message with id #{params['Digits']} found."
17
+      message = "No message with id #{id} found."
17 18
     else
18
-      message = message_object.body
19
+      message = "Begin Message." + message_object.body + ". End Message."
19 20
     end
20 21
 
21 22
     msg = Twilio::TwiML::Response.new do |r|
22
-      r.Say "The message is: #{message}"
23
+      r.Say message
24
+
25
+      r.Gather numDigits: 1, action: "/twilio/get_message?message=#{params['Digits']}", method: 'get' do |g|
26
+        g.Say "Press any key to hear this message again."
27
+      end
23 28
     end.text
24 29
 
25 30
     render xml: msg

+ 6 - 0
twilio/spec/controllers/twilio_controller_spec.rb

@@ -24,6 +24,12 @@ RSpec.describe TwilioController, :type => :controller do
24 24
         get :get_message, "Digits" => message.id
25 25
         expect(response.body).to include(message.body)
26 26
       end
27
+
28
+      it "accepts message instead of Digits" do
29
+        message = generate_message
30
+        get :get_message, "message" => message.id, "Digits" => 3243209420948320
31
+        expect(response.body).to include(message.body)
32
+      end
27 33
     end
28 34
 
29 35
     context "invalid message id" do