Class: Wavix::CallControl::Audio::Client
- Inherits:
-
Object
- Object
- Wavix::CallControl::Audio::Client
- Defined in:
- lib/wavix/call_control/audio/client.rb
Instance Method Summary collapse
- #initialize(client:) ⇒ void constructor
-
#play(request_options: {}, **params) ⇒ Wavix::Types::SuccessResponse
Plays an audio prompt into the active call identified by
id. -
#stop(request_options: {}, **params) ⇒ Wavix::Types::SuccessResponse
Stops audio playback in the active call identified by
id.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/wavix/call_control/audio/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#play(request_options: {}, **params) ⇒ Wavix::Types::SuccessResponse
Plays an audio prompt into the active call identified by id.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/wavix/call_control/audio/client.rb', line 26 def play(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) request_data = Wavix::CallControl::Audio::Types::CallAudioPlayRequest.new(params).to_h non_body_param_names = %w[id] body = request_data.except(*non_body_param_names) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v1/calls/#{URI.encode_uri_component(params[:id].to_s)}/play", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::Types::SuccessResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#stop(request_options: {}, **params) ⇒ Wavix::Types::SuccessResponse
Stops audio playback in the active call identified by id.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/wavix/call_control/audio/client.rb', line 65 def stop(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "DELETE", path: "v1/calls/#{URI.encode_uri_component(params[:id].to_s)}/audio", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::Types::SuccessResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |