Skip to content
This repository was archived by the owner on Feb 10, 2021. It is now read-only.

Commit e77ea06

Browse files
avbelDaniel Tolbert
authored andcommitted
Added bxml v2 "warnings". added missing tests (#14)
1 parent 001de83 commit e77ea06

8 files changed

Lines changed: 44 additions & 11 deletions

File tree

lib/bandwidth/xml/verbs/pause.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ class Pause
66
include XmlVerb
77

88
def to_xml(xml)
9+
warn "[DEPRECATION] Verb 'Pause' will be removed in Bandwidth XML v2"
910
xml.Pause(compact_hash({
1011
'duration' => duration
1112
}))

lib/bandwidth/xml/verbs/play_audio.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ class PlayAudio
66
include XmlVerb
77

88
def to_xml(xml)
9+
warn "[DEPRECATION] Attribute 'digits' of 'PlayAudio' will be removed in Bandwidth XML v2" if digits
910
xml.PlayAudio(url, compact_hash({
1011
'digits' => digits
1112
}))

lib/bandwidth/xml/verbs/reject.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ class Reject
66
include XmlVerb
77

88
def to_xml(xml)
9+
warn "[DEPRECATION] Verb 'Reject' will be removed in Bandwidth XML v2"
910
xml.Reject(compact_hash({
1011
'reason' => reason
1112
}))

lib/bandwidth/xml/verbs/send_message.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ class SendMessage
66
include XmlVerb
77

88
def to_xml(xml)
9+
warn "[DEPRECATION] Verb 'SendMessage' will be removed in Bandwidth XML v2"
910
xml.SendMessage(text, compact_hash({
1011
'requestUrl' => request_url,
1112
'requestUrlTimeout' => request_url_timeout,

lib/bandwidth/xml/verbs/speak_sentence.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def to_xml(xml)
99
xml.SpeakSentence(sentence, compact_hash({
1010
'voice' => voice,
1111
'locale' => locale,
12-
'gender' => gender
12+
'gender' => gender || 'female'
1313
}))
1414
end
1515
end

lib/bandwidth/xml/verbs/transfer.rb

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,29 @@ class Transfer
88
def to_xml(xml)
99
xml.Transfer(compact_hash({
1010
'transferTo' => transfer_to || to,
11-
'transferCallerId' => transfer_caller_id || caller_id
11+
'transferCallerId' => transfer_caller_id || caller_id,
12+
'requestUrl' => request_url,
13+
'requestUrlTimeout' => request_url_timeout,
14+
'callTimeout' => call_timeout,
15+
'tag' => tag,
1216
})) do
13-
if speak_sentence
14-
s = if speak_sentence.is_a?(SpeakSentence)
15-
then speak_sentence
16-
else SpeakSentence.new(speak_sentence)
17-
end
18-
s.to_xml(xml)
17+
def embedded_xml(xml, property, type)
18+
if property
19+
s = if property.is_a?(type)
20+
then property
21+
else type.new(property)
22+
end
23+
s.to_xml(xml)
24+
end
1925
end
26+
numbers = phone_numbers
27+
numbers = [phone_number] if !numbers && phone_number
28+
(numbers || []).each do |n|
29+
xml.PhoneNumber(n)
30+
end
31+
embedded_xml(xml, speak_sentence, SpeakSentence)
32+
embedded_xml(xml, play_audio, PlayAudio)
33+
embedded_xml(xml, record, Record)
2034
end
2135
end
2236
end

spec/bandwidth/xml/verbs/speak_sentence_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
describe SpeakSentence do
33
describe '#to_xml' do
44
it 'should generate valid xml' do
5-
expect(Helper.to_xml(SpeakSentence.new(:voice => "kate", :sentence => "text"))).to eql("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><SpeakSentence voice=\"kate\">text</SpeakSentence></Response>")
5+
expect(Helper.to_xml(SpeakSentence.new(:voice => "kate", :sentence => "text"))).to eql("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><SpeakSentence voice=\"kate\" gender=\"female\">text</SpeakSentence></Response>")
66
end
77
end
88
end

spec/bandwidth/xml/verbs/transfer_spec.rb

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,23 @@
66
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id"))).to eql("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"></Transfer></Response>")
77
end
88
it 'should allow to embed SpeakSentence' do
9-
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :speak_sentence => {:voice => "kate", :sentence => "text"}))).to eql("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><SpeakSentence voice=\"kate\">text</SpeakSentence></Transfer></Response>")
10-
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :speak_sentence => SpeakSentence.new({:voice => "kate", :sentence => "text"})))).to eql("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><SpeakSentence voice=\"kate\">text</SpeakSentence></Transfer></Response>")
9+
result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><SpeakSentence voice=\"kate\" gender=\"female\">text</SpeakSentence></Transfer></Response>"
10+
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :speak_sentence => {:voice => "kate", :sentence => "text"}))).to eql(result)
11+
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :speak_sentence => SpeakSentence.new({:voice => "kate", :sentence => "text"})))).to eql(result)
12+
end
13+
it 'should allow to embed PlayAudio' do
14+
result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><PlayAudio>url1</PlayAudio></Transfer></Response>"
15+
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :play_audio => {:url =>"url1"}))).to eql(result)
16+
end
17+
it 'should allow to embed Record' do
18+
result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><Record requestUrl=\"url1\"/></Transfer></Response>"
19+
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :record => {:request_url =>"url1"}))).to eql(result)
20+
end
21+
it 'should allow to embed phone numbers' do
22+
result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><PhoneNumber>+1234568901</PhoneNumber><PhoneNumber>+1234568902</PhoneNumber></Transfer></Response>"
23+
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :phone_numbers => ["+1234568901", "+1234568902"]))).to eql(result)
24+
result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Transfer transferTo=\"to\" transferCallerId=\"id\"><PhoneNumber>+1234568901</PhoneNumber></Transfer></Response>"
25+
expect(Helper.to_xml(Transfer.new(:to => "to", :caller_id => "id", :phone_number => "+1234568901"))).to eql(result)
1126
end
1227
end
1328
end

0 commit comments

Comments
 (0)