plivo 4.58.0 → 4.59.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/lib/plivo/base/resource.rb +45 -4
- data/lib/plivo/base/resource_interface.rb +12 -0
- data/lib/plivo/base.rb +1 -1
- data/lib/plivo/base_client.rb +34 -30
- data/lib/plivo/resources/maskingsession.rb +214 -0
- data/lib/plivo/resources.rb +1 -0
- data/lib/plivo/rest_client.rb +2 -0
- data/lib/plivo/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1d0565ad502d92b20824c8f478ffbb7b4ad518a5
|
|
4
|
+
data.tar.gz: 1deb5ee22ac0cfadd0ccf3bd9000d348fd3d1b32
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9c6e100330904eaa6407b9b6064ac8d98e2037ecc9547c8725b66e499b80cf18e3f15b62bf76a0349c7fbe70ef21d2303962a4a65ee4d258cac6bd0f4e315d8e
|
|
7
|
+
data.tar.gz: f2c4ec8bd749f91da845c7041380fc54f55e7e3ffb88380a74764502152833b4b462f87f11d034f436c50a44829d3173a8404d21cdcff016443bcdc26130ce77
|
data/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [4.59.0)](https://github.com/plivo/plivo-go/tree/v4.59.0) (2024-05-31)
|
|
4
|
+
**Feature - SubAccount and GeoMatch**
|
|
5
|
+
- Added sub_account and geo_match support
|
|
6
|
+
|
|
3
7
|
## [4.58.0](https://github.com/plivo/plivo-ruby/tree/v4.58.0) (2023-05-17)
|
|
4
8
|
**Feature - Adding support for location whatsapp messages**
|
|
5
9
|
- Added new param `location` to [send message API](https://www.plivo.com/docs/sms/api/message#send-a-message) to support location `whatsapp` messages
|
|
6
10
|
- Added new param `location` in templates to support location based templated messages
|
|
11
|
+
-
|
|
7
12
|
|
|
8
13
|
## [4.57.0](https://github.com/plivo/plivo-ruby/tree/v4.57.0) (2023-05-07)
|
|
9
14
|
**Feature - Adding support for interactive whatsapp messages**
|
|
10
15
|
- Added new param `interactive` to [send message API](https://www.plivo.com/docs/sms/api/message#send-a-message) to support interactive `whatsapp` messages
|
|
11
16
|
|
|
17
|
+
|
|
12
18
|
## [4.56.0](https://github.com/plivo/plivo-ruby/tree/v4.56.0) (2023-04-18)
|
|
13
19
|
**Feature - Support for dynamic button components when sending a templated WhatsApp message**
|
|
14
20
|
- Added new param `payload` in templates to support dynamic payload in templates
|
data/README.md
CHANGED
data/lib/plivo/base/resource.rb
CHANGED
|
@@ -51,10 +51,39 @@ module Plivo
|
|
|
51
51
|
@id = resource_json[@_identifier_string]
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
def set_instance_variables(hash)
|
|
55
|
+
hash.each do |k, v|
|
|
56
|
+
instance_var_name = "@#{k}"
|
|
57
|
+
|
|
58
|
+
if v.is_a?(Hash)
|
|
59
|
+
instance_variable_set(instance_var_name, v)
|
|
60
|
+
self.class.send(:attr_reader, k.to_sym)
|
|
61
|
+
v.each do |nested_k, nested_v|
|
|
62
|
+
instance_var_name = "@#{nested_k}"
|
|
63
|
+
instance_variable_set(instance_var_name, nested_v)
|
|
64
|
+
self.class.send(:attr_reader, nested_k.to_sym)
|
|
65
|
+
end
|
|
66
|
+
else
|
|
67
|
+
instance_variable_set(instance_var_name, v)
|
|
68
|
+
self.class.send(:attr_reader, k.to_sym)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def parse_and_set_response(resource_json)
|
|
74
|
+
return unless resource_json.is_a?(Hash)
|
|
75
|
+
|
|
76
|
+
set_instance_variables(resource_json)
|
|
77
|
+
|
|
78
|
+
if @_identifier_string && resource_json.key?(@_identifier_string)
|
|
79
|
+
@id = resource_json[@_identifier_string]
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
54
83
|
def perform_update(params, use_multipart_conn = false)
|
|
55
84
|
unless @id
|
|
56
85
|
raise_invalid_request("Cannot update a #{@_name} resource "\
|
|
57
|
-
|
|
86
|
+
'without an identifier')
|
|
58
87
|
end
|
|
59
88
|
|
|
60
89
|
response_json = @_client.send_request(@_resource_uri, 'POST', params, nil, use_multipart_conn, is_voice_request: @_is_voice_request)
|
|
@@ -64,6 +93,18 @@ module Plivo
|
|
|
64
93
|
self
|
|
65
94
|
end
|
|
66
95
|
|
|
96
|
+
def perform_masking_update(params, use_multipart_conn = false)
|
|
97
|
+
unless @id
|
|
98
|
+
raise_invalid_request("Cannot update a #{@_name} resource "\
|
|
99
|
+
'without an identifier')
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
response_json = @_client.send_request(@_resource_uri, 'POST', params, nil, use_multipart_conn, is_voice_request: @_is_voice_request)
|
|
103
|
+
parse_and_set(params)
|
|
104
|
+
parse_and_set_response(response_json)
|
|
105
|
+
self
|
|
106
|
+
end
|
|
107
|
+
|
|
67
108
|
def perform_action(action = nil, method = 'GET', params = nil, parse = false)
|
|
68
109
|
resource_path = action ? @_resource_uri + action + '/' : @_resource_uri
|
|
69
110
|
response = @_client.send_request(resource_path, method, params,nil,false,is_voice_request: @_is_voice_request)
|
|
@@ -71,7 +112,7 @@ module Plivo
|
|
|
71
112
|
method == 'POST' ? parse_and_set(params) : self
|
|
72
113
|
self
|
|
73
114
|
end
|
|
74
|
-
|
|
115
|
+
|
|
75
116
|
def perform_custome_action(action = nil, method = 'GET', params = nil, parse = false)
|
|
76
117
|
resource_path = action ? @_resource_uri + action + '/' : @_resource_uri
|
|
77
118
|
response = @_client.send_request(resource_path, method, params,nil,false,is_voice_request: @_is_voice_request)
|
|
@@ -101,7 +142,7 @@ module Plivo
|
|
|
101
142
|
def perform_delete(params=nil)
|
|
102
143
|
unless @id
|
|
103
144
|
raise_invalid_request("Cannot delete a #{@_name} resource "\
|
|
104
|
-
|
|
145
|
+
'without an identifier')
|
|
105
146
|
end
|
|
106
147
|
|
|
107
148
|
Response.new(@_client.send_request(@_resource_uri, 'DELETE', params, nil, false, is_voice_request: @_is_voice_request),
|
|
@@ -145,4 +186,4 @@ module Plivo
|
|
|
145
186
|
end
|
|
146
187
|
end
|
|
147
188
|
end
|
|
148
|
-
end
|
|
189
|
+
end
|
|
@@ -46,6 +46,14 @@ module Plivo
|
|
|
46
46
|
@_resource_type.new(@_client, resource_json: response_json)
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
+
def perform_get_with_response(identifier, params = nil)
|
|
50
|
+
valid_param?(:identifier, identifier, [String, Symbol], true)
|
|
51
|
+
response_json = @_client.send_request(@_resource_uri + identifier.to_s + '/', 'GET', params, nil, false, is_voice_request: @_is_voice_request)
|
|
52
|
+
resource_json = response_json["response"]
|
|
53
|
+
# Pass the parsed JSON to initialize the resource object
|
|
54
|
+
@_resource_type.new(@_client, resource_json: resource_json)
|
|
55
|
+
end
|
|
56
|
+
|
|
49
57
|
def perform_get_without_identifier(params)
|
|
50
58
|
valid_param?(:params, params, Hash, true)
|
|
51
59
|
response_json = @_client.send_request(@_resource_uri, 'GET', params, nil, false, is_voice_request: @_is_voice_request)
|
|
@@ -98,6 +106,10 @@ module Plivo
|
|
|
98
106
|
}
|
|
99
107
|
end
|
|
100
108
|
|
|
109
|
+
def perform_list_with_response(params = nil)
|
|
110
|
+
@_client.send_request(@_resource_uri, 'GET', params, nil, false, is_voice_request: @_is_voice_request)
|
|
111
|
+
end
|
|
112
|
+
|
|
101
113
|
def perform_action(action = nil, method = 'GET', params = nil, parse = false)
|
|
102
114
|
resource_path = action ? @_resource_uri + action + '/' : @_resource_uri
|
|
103
115
|
response = @_client.send_request(resource_path, method, params, nil, false, is_voice_request: @_is_voice_request)
|
data/lib/plivo/base.rb
CHANGED
data/lib/plivo/base_client.rb
CHANGED
|
@@ -343,41 +343,41 @@ module Plivo
|
|
|
343
343
|
|
|
344
344
|
def handle_response_exceptions(response)
|
|
345
345
|
exception_mapping = {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
346
|
+
400 => [
|
|
347
|
+
Exceptions::ValidationError,
|
|
348
|
+
'A parameter is missing or is invalid while accessing resource'
|
|
349
|
+
],
|
|
350
|
+
401 => [
|
|
351
|
+
Exceptions::AuthenticationError,
|
|
352
|
+
'Failed to authenticate while accessing resource'
|
|
353
|
+
],
|
|
354
|
+
404 => [
|
|
355
|
+
Exceptions::ResourceNotFoundError,
|
|
356
|
+
'Resource not found'
|
|
357
|
+
],
|
|
358
|
+
405 => [
|
|
359
|
+
Exceptions::InvalidRequestError,
|
|
360
|
+
'HTTP method used is not allowed to access resource'
|
|
361
|
+
],
|
|
362
|
+
409 => [
|
|
363
|
+
Exceptions::InvalidRequestError,
|
|
364
|
+
'Conflict'
|
|
365
|
+
],
|
|
366
|
+
422 => [
|
|
367
|
+
Exceptions::InvalidRequestError,
|
|
368
|
+
'Unprocessable Entity'
|
|
369
|
+
],
|
|
370
|
+
500 => [
|
|
371
|
+
Exceptions::PlivoServerError,
|
|
372
|
+
'A server error occurred while accessing resource'
|
|
373
|
+
]
|
|
374
374
|
}
|
|
375
375
|
|
|
376
376
|
response_json = response[:body]
|
|
377
|
-
return unless exception_mapping.key?
|
|
377
|
+
return unless exception_mapping.key?(response[:status])
|
|
378
378
|
|
|
379
379
|
exception_now = exception_mapping[response[:status]]
|
|
380
|
-
error_message = if
|
|
380
|
+
error_message = if response_json.is_a?(Hash) && response_json.key?('error')
|
|
381
381
|
response_json['error']
|
|
382
382
|
else
|
|
383
383
|
exception_now[1] + " at: #{response[:url]}"
|
|
@@ -386,6 +386,10 @@ module Plivo
|
|
|
386
386
|
error_message = error_message['error']
|
|
387
387
|
end
|
|
388
388
|
|
|
389
|
+
# Add api_id to the error message if present
|
|
390
|
+
if response_json.is_a?(Hash) && response_json.key?('api_id')
|
|
391
|
+
error_message += " (api_id: #{response_json['api_id']})"
|
|
392
|
+
end
|
|
389
393
|
raise exception_now[0], error_message.to_s
|
|
390
394
|
end
|
|
391
395
|
end
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
module Plivo
|
|
2
|
+
module Resources
|
|
3
|
+
include Plivo::Utils
|
|
4
|
+
class MaskingSession < Base::Resource
|
|
5
|
+
def initialize(client, options = nil)
|
|
6
|
+
@_name = 'Masking/Session'
|
|
7
|
+
@_identifier_string = 'session_uuid'
|
|
8
|
+
super
|
|
9
|
+
@_is_voice_request = true
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def update(options = nil)
|
|
13
|
+
return if options.nil?
|
|
14
|
+
valid_param?(:options, options, Hash, true)
|
|
15
|
+
|
|
16
|
+
params = {}
|
|
17
|
+
params_expected = %i[session_expiry call_time_limit record record_file_format recording_callback_url
|
|
18
|
+
callback_url callback_method ring_timeout first_party_play_url second_party_play_url recording_callback_method
|
|
19
|
+
subaccount geomatch]
|
|
20
|
+
params_expected.each do |param|
|
|
21
|
+
if options.key?(param) && valid_param?(param, options[param], [String, Symbol, TrueClass, FalseClass], true)
|
|
22
|
+
params[param] = options[param]
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
updated_session = perform_masking_update(params)
|
|
27
|
+
session_data = updated_session.instance_variables.map do |var|
|
|
28
|
+
[var[1..-1].to_sym, updated_session.instance_variable_get(var)]
|
|
29
|
+
end.to_h
|
|
30
|
+
|
|
31
|
+
relevant_keys = %i[api_id message session]
|
|
32
|
+
filtered_session_data = session_data.select { |key, _| relevant_keys.include?(key) }
|
|
33
|
+
|
|
34
|
+
if filtered_session_data[:session]
|
|
35
|
+
session_instance = filtered_session_data[:session]
|
|
36
|
+
session_data = session_instance.map do |key, value|
|
|
37
|
+
[key.to_sym, value]
|
|
38
|
+
end.to_h
|
|
39
|
+
|
|
40
|
+
# Extract relevant keys from session
|
|
41
|
+
session_relevant_keys = %i[first_party second_party virtual_number status initiate_call_to_first_party session_uuid callback_url callback_method created_time
|
|
42
|
+
modified_time expiry_time duration amount call_time_limit ring_timeout first_party_play_url second_party_play_url record record_file_format recording_callback_url
|
|
43
|
+
recording_callback_method interaction total_call_amount total_call_count total_call_billed_duration total_session_amount last_interaction_time unknown_caller_play
|
|
44
|
+
is_pin_authentication_required generate_pin generate_pin_length first_party_pin second_party_pin pin_prompt_play pin_retry pin_retry_wait incorrect_pin_play]
|
|
45
|
+
|
|
46
|
+
filtered_session_data[:session] = session_data.select { |key, _| session_relevant_keys.include?(key) }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
filtered_session_data
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def delete
|
|
53
|
+
perform_delete
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def to_s
|
|
57
|
+
{
|
|
58
|
+
first_party: @first_party,
|
|
59
|
+
second_party: @second_party,
|
|
60
|
+
virtual_number: @virtual_number,
|
|
61
|
+
status: @status,
|
|
62
|
+
initiate_call_to_first_party: @initiate_call_to_first_party,
|
|
63
|
+
session_uuid: @session_uuid,
|
|
64
|
+
callback_url: @callback_url,
|
|
65
|
+
callback_method: @callback_method,
|
|
66
|
+
created_time: @created_time,
|
|
67
|
+
modified_time: @modified_time,
|
|
68
|
+
expiry_time: @expiry_time,
|
|
69
|
+
duration: @duration,
|
|
70
|
+
amount: @amount,
|
|
71
|
+
call_time_limit: @call_time_limit,
|
|
72
|
+
ring_timeout: @ring_timeout,
|
|
73
|
+
first_party_play_url: @first_party_play_url,
|
|
74
|
+
second_party_play_url: @second_party_play_url,
|
|
75
|
+
record: @record,
|
|
76
|
+
record_file_format: @record_file_format,
|
|
77
|
+
recording_callback_url: @recording_callback_url,
|
|
78
|
+
recording_callback_method: @recording_callback_method,
|
|
79
|
+
interaction: @interaction,
|
|
80
|
+
total_call_amount: @total_call_amount,
|
|
81
|
+
total_call_count: @total_call_count,
|
|
82
|
+
total_call_billed_duration: @total_call_billed_duration,
|
|
83
|
+
total_session_amount: @total_session_amount,
|
|
84
|
+
last_interaction_time: @last_interaction_time,
|
|
85
|
+
is_pin_authentication_required: @is_pin_authentication_required,
|
|
86
|
+
generate_pin: @generate_pin,
|
|
87
|
+
generate_pin_length: @generate_pin_length,
|
|
88
|
+
second_party_pin: @second_party_pin,
|
|
89
|
+
pin_prompt_play: @pin_prompt_play,
|
|
90
|
+
pin_retry: @pin_retry,
|
|
91
|
+
pin_retry_wait: @pin_retry_wait,
|
|
92
|
+
incorrect_pin_play: @incorrect_pin_play,
|
|
93
|
+
unknown_caller_play: @unknown_caller_play
|
|
94
|
+
}.to_s
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
class MaskingSessionInterface < Base::ResourceInterface
|
|
99
|
+
def initialize(client, resource_list_json = nil)
|
|
100
|
+
@_name = 'Masking/Session'
|
|
101
|
+
@_resource_type = MaskingSession
|
|
102
|
+
@_identifier_string = 'session_uuid'
|
|
103
|
+
super
|
|
104
|
+
@_is_voice_request = true
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def get(session_uuid)
|
|
108
|
+
valid_param?(:session_uuid, session_uuid, [String, Symbol], true)
|
|
109
|
+
perform_get_with_response(session_uuid)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def create(first_party:, second_party:, session_expiry: nil, call_time_limit: nil, record: nil, record_file_format: nil,
|
|
113
|
+
recording_callback_url: nil, initiate_call_to_first_party: nil, callback_url: nil, callback_method: nil, ring_timeout: nil,
|
|
114
|
+
first_party_play_url: nil, second_party_play_url: nil, recording_callback_method: nil, is_pin_authentication_required: nil,
|
|
115
|
+
generate_pin: nil, generate_pin_length: nil, first_party_pin: nil, second_party_pin: nil, pin_prompt_play: nil, pin_retry: nil,
|
|
116
|
+
pin_retry_wait: nil, incorrect_pin_play: nil, unknown_caller_play: nil, subaccount: nil, geomatch: nil)
|
|
117
|
+
|
|
118
|
+
valid_param?(:first_party, first_party, [String, Symbol], true)
|
|
119
|
+
valid_param?(:second_party, second_party, [String, Symbol], true)
|
|
120
|
+
|
|
121
|
+
params = {}
|
|
122
|
+
params[:first_party] = first_party
|
|
123
|
+
params[:second_party] = second_party
|
|
124
|
+
params[:session_expiry] = session_expiry unless session_expiry.nil?
|
|
125
|
+
params[:call_time_limit] = call_time_limit unless call_time_limit.nil?
|
|
126
|
+
params[:record] = record unless record.nil?
|
|
127
|
+
params[:record_file_format] = record_file_format unless record_file_format.nil?
|
|
128
|
+
params[:recording_callback_url] = recording_callback_url unless recording_callback_url.nil?
|
|
129
|
+
params[:initiate_call_to_first_party] = initiate_call_to_first_party unless initiate_call_to_first_party.nil?
|
|
130
|
+
params[:callback_url] = callback_url unless callback_url.nil?
|
|
131
|
+
params[:callback_method] = callback_method unless callback_method.nil?
|
|
132
|
+
params[:ring_timeout] = ring_timeout unless ring_timeout.nil?
|
|
133
|
+
params[:first_party_play_url] = first_party_play_url unless first_party_play_url.nil?
|
|
134
|
+
params[:second_party_play_url] = second_party_play_url unless second_party_play_url.nil?
|
|
135
|
+
params[:recording_callback_method] = recording_callback_method unless recording_callback_method.nil?
|
|
136
|
+
params[:is_pin_authentication_required] = is_pin_authentication_required unless is_pin_authentication_required.nil?
|
|
137
|
+
params[:generate_pin] = generate_pin unless generate_pin.nil?
|
|
138
|
+
params[:generate_pin_length] = generate_pin_length unless generate_pin_length.nil?
|
|
139
|
+
params[:first_party_pin] = first_party_pin unless first_party_pin.nil?
|
|
140
|
+
params[:second_party_pin] = second_party_pin unless second_party_pin.nil?
|
|
141
|
+
params[:pin_prompt_play] = pin_prompt_play unless pin_prompt_play.nil?
|
|
142
|
+
params[:pin_retry] = pin_retry unless pin_retry.nil?
|
|
143
|
+
params[:pin_retry_wait] = pin_retry_wait unless pin_retry_wait.nil?
|
|
144
|
+
params[:incorrect_pin_play] = incorrect_pin_play unless incorrect_pin_play.nil?
|
|
145
|
+
params[:unknown_caller_play] = unknown_caller_play unless unknown_caller_play.nil?
|
|
146
|
+
params[:subaccount] = subaccount unless subaccount.nil?
|
|
147
|
+
params[:geomatch] = geomatch unless geomatch.nil?
|
|
148
|
+
|
|
149
|
+
perform_create(params)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def list(options = nil)
|
|
153
|
+
return perform_list_with_response if options.nil?
|
|
154
|
+
valid_param?(:options, options, Hash, true)
|
|
155
|
+
|
|
156
|
+
raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0
|
|
157
|
+
|
|
158
|
+
if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
|
|
159
|
+
raise_invalid_request('The maximum number of results that can be '\
|
|
160
|
+
"fetched is 20. limit can't be more than 20 or less than 1")
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
params = %i[
|
|
164
|
+
first_party
|
|
165
|
+
second_party
|
|
166
|
+
virtual_number
|
|
167
|
+
status
|
|
168
|
+
created_time
|
|
169
|
+
created_time__lt
|
|
170
|
+
created_time__gt
|
|
171
|
+
created_time__lte
|
|
172
|
+
created_time__gte
|
|
173
|
+
expiry_time
|
|
174
|
+
expiry_time__lt
|
|
175
|
+
expiry_time__gt
|
|
176
|
+
expiry_time__lte
|
|
177
|
+
expiry_time__gte
|
|
178
|
+
duration
|
|
179
|
+
duration__lt
|
|
180
|
+
duration__gt
|
|
181
|
+
duration__lte
|
|
182
|
+
duration__gte
|
|
183
|
+
limit
|
|
184
|
+
offset
|
|
185
|
+
subaccount
|
|
186
|
+
].reduce({}) do |result_hash, param|
|
|
187
|
+
if options.key?(param)
|
|
188
|
+
if valid_param?(param, options[param], [String, Symbol], true)
|
|
189
|
+
result_hash[param] = options[param]
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
result_hash
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
perform_list_with_response(params)
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
def each
|
|
199
|
+
maskingsession_list = list
|
|
200
|
+
maskingsession_list[:objects].each { |maskingsession| yield maskingsession }
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def update(session_uuid, options = nil)
|
|
204
|
+
valid_param?(:session_uuid, session_uuid, [String, Symbol], true)
|
|
205
|
+
MaskingSession.new(@_client, resource_id: session_uuid).update(options)
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
def delete(session_uuid)
|
|
209
|
+
valid_param?(:session_uuid, session_uuid, [String, Symbol], true)
|
|
210
|
+
MaskingSession.new(@_client, resource_id: session_uuid).delete
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
data/lib/plivo/resources.rb
CHANGED
|
@@ -9,6 +9,7 @@ require_relative 'resources/conferences'
|
|
|
9
9
|
require_relative 'resources/calls'
|
|
10
10
|
require_relative 'resources/token'
|
|
11
11
|
require_relative 'resources/endpoints'
|
|
12
|
+
require_relative 'resources/maskingsession'
|
|
12
13
|
require_relative 'resources/addresses'
|
|
13
14
|
require_relative 'resources/identities'
|
|
14
15
|
require_relative 'resources/phlos'
|
data/lib/plivo/rest_client.rb
CHANGED
|
@@ -21,6 +21,7 @@ module Plivo
|
|
|
21
21
|
attr_reader :verify_session
|
|
22
22
|
attr_reader :tollfree_verifications
|
|
23
23
|
attr_reader :verify_caller_id
|
|
24
|
+
attr_reader :maskingsession
|
|
24
25
|
|
|
25
26
|
def initialize(auth_id = nil, auth_token = nil, proxy_options = nil, timeout = 5)
|
|
26
27
|
configure_base_uri
|
|
@@ -56,6 +57,7 @@ module Plivo
|
|
|
56
57
|
@calls = Resources::CallInterface.new(self)
|
|
57
58
|
@token = Resources::TokenInterface.new(self)
|
|
58
59
|
@endpoints = Resources::EndpointInterface.new(self)
|
|
60
|
+
@maskingsession = Resources::MaskingSessionInterface.new(self)
|
|
59
61
|
@applications = Resources::ApplicationInterface.new(self)
|
|
60
62
|
@addresses = Resources::AddressInterface.new(self)
|
|
61
63
|
@identities = Resources::IdentityInterface.new(self)
|
data/lib/plivo/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: plivo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.59.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The Plivo SDKs Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-05-
|
|
11
|
+
date: 2024-05-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -182,6 +182,7 @@ files:
|
|
|
182
182
|
- lib/plivo/resources/endpoints.rb
|
|
183
183
|
- lib/plivo/resources/identities.rb
|
|
184
184
|
- lib/plivo/resources/lookup.rb
|
|
185
|
+
- lib/plivo/resources/maskingsession.rb
|
|
185
186
|
- lib/plivo/resources/media.rb
|
|
186
187
|
- lib/plivo/resources/messages.rb
|
|
187
188
|
- lib/plivo/resources/multipartycalls.rb
|