bandwidth-sdk 0.1.0 → 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE +27 -27
  3. data/README.md +115 -1
  4. data/lib/bandwidth.rb +39 -37
  5. data/lib/bandwidth/api_helper.rb +280 -280
  6. data/lib/bandwidth/client.rb +41 -32
  7. data/lib/bandwidth/configuration.rb +130 -111
  8. data/lib/bandwidth/exceptions/api_exception.rb +20 -20
  9. data/lib/bandwidth/http/api_response.rb +36 -36
  10. data/lib/bandwidth/http/auth/messaging_basic_auth.rb +22 -0
  11. data/lib/bandwidth/http/auth/voice_basic_auth.rb +22 -22
  12. data/lib/bandwidth/http/faraday_client.rb +64 -64
  13. data/lib/bandwidth/http/http_call_back.rb +24 -24
  14. data/lib/bandwidth/http/http_client.rb +104 -104
  15. data/lib/bandwidth/http/http_method_enum.rb +13 -13
  16. data/lib/bandwidth/http/http_request.rb +50 -50
  17. data/lib/bandwidth/http/http_response.rb +29 -29
  18. data/lib/bandwidth/messaging_lib/messaging.rb +23 -0
  19. data/lib/bandwidth/messaging_lib/messaging/client.rb +40 -0
  20. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +406 -0
  21. data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +49 -0
  22. data/lib/bandwidth/messaging_lib/messaging/exceptions/generic_client_exception.rb +46 -0
  23. data/lib/bandwidth/messaging_lib/messaging/exceptions/path_client_exception.rb +49 -0
  24. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +80 -0
  25. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +125 -0
  26. data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +44 -0
  27. data/lib/bandwidth/messaging_lib/messaging/models/field_error.rb +44 -0
  28. data/lib/bandwidth/messaging_lib/messaging/models/media.rb +123 -0
  29. data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +80 -0
  30. data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +44 -0
  31. data/lib/bandwidth/models/base_model.rb +36 -36
  32. data/lib/bandwidth/voice_lib/bxml/bxml.rb +40 -0
  33. data/lib/bandwidth/voice_lib/bxml/verbs/forward.rb +19 -0
  34. data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +38 -0
  35. data/lib/bandwidth/voice_lib/bxml/verbs/hangup.rb +15 -0
  36. data/lib/bandwidth/voice_lib/bxml/verbs/pause.rb +16 -0
  37. data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +19 -0
  38. data/lib/bandwidth/voice_lib/bxml/verbs/play_audio.rb +18 -0
  39. data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +21 -0
  40. data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +14 -0
  41. data/lib/bandwidth/voice_lib/bxml/verbs/speak_sentence.rb +19 -0
  42. data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +38 -0
  43. data/lib/bandwidth/voice_lib/bxml/verbs/xml_verb.rb +27 -0
  44. data/lib/bandwidth/voice_lib/voice.rb +27 -23
  45. data/lib/bandwidth/voice_lib/voice/client.rb +40 -36
  46. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +184 -0
  47. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +49 -49
  48. data/lib/bandwidth/voice_lib/voice/exceptions/bandwidth_exception.rb +51 -0
  49. data/lib/bandwidth/voice_lib/voice/exceptions/bandwidth_not_found_exception.rb +49 -0
  50. data/lib/bandwidth/voice_lib/voice/exceptions/bandwidth_rate_limit_error_exception.rb +56 -0
  51. data/lib/bandwidth/voice_lib/voice/models/answer_method_enum.rb +35 -35
  52. data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +116 -116
  53. data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +125 -125
  54. data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +80 -80
  55. data/lib/bandwidth/voice_lib/voice/models/bandwidth_callback_message_voice.rb +98 -98
  56. data/lib/bandwidth/voice_lib/voice/models/disconnect_method_enum.rb +35 -35
  57. data/lib/bandwidth/voice_lib/voice/models/field_error.rb +44 -0
  58. data/lib/bandwidth/voice_lib/voice/models/redirect_method_enum.rb +35 -35
  59. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +17 -17
  60. metadata +36 -47
  61. data/lib/bandwidth/voice_lib/voice/bxml/bxml.rb +0 -36
  62. data/lib/bandwidth/voice_lib/voice/bxml/verbs/forward.rb +0 -19
  63. data/lib/bandwidth/voice_lib/voice/bxml/verbs/gather.rb +0 -37
  64. data/lib/bandwidth/voice_lib/voice/bxml/verbs/hangup.rb +0 -14
  65. data/lib/bandwidth/voice_lib/voice/bxml/verbs/pause.rb +0 -15
  66. data/lib/bandwidth/voice_lib/voice/bxml/verbs/phone_number.rb +0 -18
  67. data/lib/bandwidth/voice_lib/voice/bxml/verbs/play_audio.rb +0 -17
  68. data/lib/bandwidth/voice_lib/voice/bxml/verbs/redirect.rb +0 -20
  69. data/lib/bandwidth/voice_lib/voice/bxml/verbs/send_dtmf.rb +0 -12
  70. data/lib/bandwidth/voice_lib/voice/bxml/verbs/speak_sentence.rb +0 -18
  71. data/lib/bandwidth/voice_lib/voice/bxml/verbs/transfer.rb +0 -37
  72. data/lib/bandwidth/voice_lib/voice/bxml/verbs/xml_verb.rb +0 -26
  73. data/lib/bandwidth/voice_lib/voice/controllers/calls_controller.rb +0 -88
@@ -1,18 +0,0 @@
1
- require_relative 'xml_verb'
2
-
3
- module Bandwidth
4
- module Voice
5
- # The SpeakSentence verb is used to convert any text into speak for the caller
6
- class SpeakSentence
7
- include XmlVerb
8
-
9
- def to_xml(xml)
10
- xml.SpeakSentence(sentence, compact_hash({
11
- 'voice' => voice,
12
- 'locale' => locale,
13
- 'gender' => gender
14
- }))
15
- end
16
- end
17
- end
18
- end
@@ -1,37 +0,0 @@
1
- require_relative 'xml_verb'
2
-
3
- module Bandwidth
4
- module Voice
5
- # The Transfer verb is used to transfer the call to another number
6
- class Transfer
7
- include XmlVerb
8
-
9
- def to_xml(xml)
10
- xml.Transfer(compact_hash({
11
- 'transferCallerId' => transfer_caller_id,
12
- 'callTimeout' => call_timeout,
13
- 'tag' => tag,
14
- 'transferCompleteUrl' => transfer_complete_url,
15
- 'transferCompleteMethod' => transfer_complete_method,
16
- 'username' => username,
17
- 'password' => password,
18
- 'diversionTreatment' => diversion_treatment,
19
- 'diversionReason' => diversion_reason
20
- })) do
21
- def embedded_xml(xml, property, type)
22
- if property
23
- s = if property.is_a?(type)
24
- then property
25
- else type.new(property)
26
- end
27
- s.to_xml(xml)
28
- end
29
- end
30
- phone_numbers.each do |number|
31
- embedded_xml(xml, number, PhoneNumber)
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,26 +0,0 @@
1
- module Bandwidth
2
- module Voice
3
- module XmlVerb
4
- def initialize(data = nil)
5
- @data = (data || {}).clone()
6
- end
7
-
8
- def method_missing(name, *args, &block)
9
- if name[name.size - 1] == '='
10
- @data[name[0..-2].to_sym] = args[0]
11
- else
12
- @data[name]
13
- end
14
- end
15
-
16
- def compact_hash(hash)
17
- hash.inject({}) do |new_hash, (k,v)|
18
- if !v.nil?
19
- new_hash[k] = v.class == Hash ? compact_hash(v) : v
20
- end
21
- new_hash
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,88 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Bandwidth
7
- module Voice
8
- # CallsController
9
- class CallsController < BaseController
10
- def initialize(config, http_call_back: nil)
11
- super(config, http_call_back: http_call_back)
12
- end
13
-
14
- # Creates a call request
15
- # @param [String] account_id Required parameter: Example:
16
- # @param [ApiCreateCallRequest] body Optional parameter: Example:
17
- # @return [ApiCallResponse] response from the API call
18
- def create_call(account_id,
19
- body: nil)
20
- # Prepare query url.
21
- _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
22
- _query_builder << '/api/v2/accounts/{accountId}/calls'
23
- _query_builder = APIHelper.append_url_with_template_parameters(
24
- _query_builder,
25
- 'accountId' => account_id
26
- )
27
- _query_url = APIHelper.clean_url _query_builder
28
-
29
- # Prepare headers.
30
- _headers = {
31
- 'accept' => 'application/json',
32
- 'content-type' => 'application/json; charset=utf-8'
33
- }
34
-
35
- # Prepare and execute HttpRequest.
36
- _request = config.http_client.post(
37
- _query_url,
38
- headers: _headers,
39
- parameters: body.to_json
40
- )
41
- VoiceBasicAuth.apply(config, _request)
42
- _response = execute_request(_request)
43
- validate_response(_response)
44
-
45
- # Return appropriate response type.
46
- decoded = APIHelper.json_deserialize(_response.raw_body)
47
- ApiResponse.new(_response, data: ApiCallResponse.from_hash(decoded))
48
- end
49
-
50
- # Creates a call request
51
- # @param [String] account_id Required parameter: Example:
52
- # @param [String] call_id Required parameter: Example:
53
- # @param [ApiModifyCallRequest] body Optional parameter: Example:
54
- # @return [void] response from the API call
55
- def modify_call(account_id,
56
- call_id,
57
- body: nil)
58
- # Prepare query url.
59
- _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
60
- _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
61
- _query_builder = APIHelper.append_url_with_template_parameters(
62
- _query_builder,
63
- 'accountId' => account_id,
64
- 'callId' => call_id
65
- )
66
- _query_url = APIHelper.clean_url _query_builder
67
-
68
- # Prepare headers.
69
- _headers = {
70
- 'content-type' => 'application/json; charset=utf-8'
71
- }
72
-
73
- # Prepare and execute HttpRequest.
74
- _request = config.http_client.post(
75
- _query_url,
76
- headers: _headers,
77
- parameters: body.to_json
78
- )
79
- VoiceBasicAuth.apply(config, _request)
80
- _response = execute_request(_request)
81
- validate_response(_response)
82
-
83
- # Return appropriate response type.
84
- ApiResponse.new(_response)
85
- end
86
- end
87
- end
88
- end