bandwidth-sdk 0.1.0 → 1.0.0.pre

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.
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