twilio_contactable 0.8.3 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/controller.rb +31 -14
- data/lib/twilio_contactable.rb +2 -2
- data/test/twilio_contactable_contactable_test.rb +0 -34
- data/test/twilio_contactable_controller_test.rb +1 -1
- data/test/twilio_module_test.rb +2 -2
- data/twilio_contactable.gemspec +1 -1
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.4
|
data/lib/controller.rb
CHANGED
@@ -42,29 +42,46 @@ module TwilioContactable
|
|
42
42
|
|
43
43
|
def start_voice_confirmation
|
44
44
|
render :xml => (Twilio::Response.new.tap do |response|
|
45
|
-
response
|
46
|
-
:action => url_for(
|
47
|
-
:action => 'receive_voice_confirmation',
|
48
|
-
:contactable_type => params[:contactable_type],
|
49
|
-
:contactable_id => params[:contactable_id]
|
50
|
-
)
|
51
|
-
).tap do |gather|
|
52
|
-
gather.addSay "Please type the numbers that appear on your screen, followed by the pound sign"
|
53
|
-
end
|
45
|
+
gather(response)
|
54
46
|
end.respond)
|
55
47
|
end
|
56
48
|
|
57
49
|
def receive_voice_confirmation
|
58
50
|
@contactable = params[:contactable_type].constantize.find(params[:contactable_id])
|
59
|
-
@contactable.voice_confirm_with(params['Digits'])
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
51
|
+
if @contactable.voice_confirm_with(params['Digits'])
|
52
|
+
render :xml => (Twilio::Response.new.tap do |response|
|
53
|
+
response.addSay "Thank you, please return to the website and continue"
|
54
|
+
response.addHangup
|
55
|
+
end.respond)
|
56
|
+
else
|
57
|
+
render :xml => (Twilio::Response.new.tap do |response|
|
58
|
+
response.addSay "Sorry, those aren't the correct numbers."
|
59
|
+
gather(response)
|
60
|
+
end.respond)
|
61
|
+
end
|
64
62
|
end
|
65
63
|
|
66
64
|
protected
|
67
65
|
|
66
|
+
def gather(response)
|
67
|
+
tries = (params[:tries] ||= '0').succ!
|
68
|
+
if tries.to_i > 4
|
69
|
+
response.addSay "We're sorry, this doesn't seem to be working. Please contact technical support."
|
70
|
+
response.addHangup
|
71
|
+
else
|
72
|
+
response.addGather(
|
73
|
+
:action => url_for(
|
74
|
+
:action => 'receive_voice_confirmation',
|
75
|
+
:contactable_type => params[:contactable_type],
|
76
|
+
:contactable_id => params[:contactable_id],
|
77
|
+
:tries => tries
|
78
|
+
)
|
79
|
+
).tap do |gather|
|
80
|
+
gather.addSay "Please type the numbers that appear on your screen, followed by the pound sign"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
68
85
|
def find_contactable_by_phone_number(number)
|
69
86
|
[number, number.sub(/^\+/,''), number.sub(/^\+1/,'')].uniq.compact.each do |possible_phone_number|
|
70
87
|
@@contactable_classes.each do |klass|
|
data/lib/twilio_contactable.rb
CHANGED
@@ -23,8 +23,8 @@ module TwilioContactable
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def generate_confirmation_code
|
26
|
-
|
27
|
-
(0...
|
26
|
+
nums = (0..9).to_a
|
27
|
+
(0...4).collect { nums[Kernel.rand(nums.length)] }.join
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -103,23 +103,6 @@ class TwilioContactableContactableTest < ActiveSupport::TestCase
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
end
|
106
|
-
context "calling sms_confirm_with(right code, wrong case)" do
|
107
|
-
setup {
|
108
|
-
@downcased_code = @user._TC_sms_confirmation_code.downcase
|
109
|
-
@worked = @user.sms_confirm_with(@downcased_code)
|
110
|
-
}
|
111
|
-
should "have good test data" do
|
112
|
-
assert_not_equal @downcased_code,
|
113
|
-
@user._TC_sms_confirmation_code
|
114
|
-
end
|
115
|
-
should "work" do
|
116
|
-
assert @worked
|
117
|
-
end
|
118
|
-
should "save the phone number into the confirmed attribute" do
|
119
|
-
assert_equal @user._TC_sms_confirmed_phone_number,
|
120
|
-
@user._TC_formatted_phone_number
|
121
|
-
end
|
122
|
-
end
|
123
106
|
context "calling sms_confirm_with(wrong_code)" do
|
124
107
|
setup { @worked = @user.sms_confirm_with('wrong_code') }
|
125
108
|
should "not work" do
|
@@ -220,23 +203,6 @@ class TwilioContactableContactableTest < ActiveSupport::TestCase
|
|
220
203
|
end
|
221
204
|
end
|
222
205
|
end
|
223
|
-
context "calling voice_confirm_with(right code, wrong case)" do
|
224
|
-
setup {
|
225
|
-
@downcased_code = @user._TC_voice_confirmation_code.downcase
|
226
|
-
@worked = @user.voice_confirm_with(@downcased_code)
|
227
|
-
}
|
228
|
-
should "have good test data" do
|
229
|
-
assert_not_equal @downcased_code,
|
230
|
-
@user._TC_voice_confirmation_code
|
231
|
-
end
|
232
|
-
should "work" do
|
233
|
-
assert @worked
|
234
|
-
end
|
235
|
-
should "save the phone number into the confirmed attribute" do
|
236
|
-
assert_equal @user._TC_voice_confirmed_phone_number,
|
237
|
-
@user._TC_formatted_phone_number
|
238
|
-
end
|
239
|
-
end
|
240
206
|
context "calling voice_confirm_with(wrong_code)" do
|
241
207
|
setup { @worked = @user.voice_confirm_with('wrong_code') }
|
242
208
|
should "not work" do
|
@@ -83,7 +83,7 @@ class TwilioContactableControllerTest < ActionController::TestCase
|
|
83
83
|
assert_dom_equal %q{
|
84
84
|
<response>
|
85
85
|
<gather
|
86
|
-
action="http://test.host/twilio_contactable/receive_voice_confirmation?contactable_id=1&contactable_type=User"
|
86
|
+
action="http://test.host/twilio_contactable/receive_voice_confirmation?contactable_id=1&contactable_type=User&tries=1"
|
87
87
|
>
|
88
88
|
<say>
|
89
89
|
Please type the numbers that appear on your screen, followed by the pound sign
|
data/test/twilio_module_test.rb
CHANGED
@@ -39,8 +39,8 @@ class TwilioContactableModuleTest < ActiveSupport::TestCase
|
|
39
39
|
|
40
40
|
context "generating codes" do
|
41
41
|
setup { @code = TwilioContactable.generate_confirmation_code }
|
42
|
-
should "be
|
43
|
-
assert_equal
|
42
|
+
should "be 4 digits" do
|
43
|
+
assert_equal 4, @code.length
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
data/twilio_contactable.gemspec
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio_contactable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 4
|
10
|
+
version: 0.8.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jack Danger Canty
|