Class: Plivo::Resources::MaskingSessionInterface

Inherits:
Base::ResourceInterface show all
Defined in:
lib/plivo/resources/maskingsession.rb

Constant Summary

Constants included from Utils

Utils::TYPE_WHITELIST

Instance Method Summary collapse

Methods included from Utils

GetSortedQueryParamString?, compute_signatureV3?, expected_type?, expected_value?, generate_url?, getMapFromQueryString?, is_one_among_string_url?, multi_valid_param?, raise_invalid_request, valid_account?, valid_date_format?, valid_mainaccount?, valid_multiple_destination_integers?, valid_multiple_destination_nos?, valid_param?, valid_range?, valid_signature?, valid_signatureV3?, valid_subaccount?, valid_url?

Constructor Details

#initialize(client, resource_list_json = nil) ⇒ MaskingSessionInterface

Returns a new instance of MaskingSessionInterface.



102
103
104
105
106
107
108
# File 'lib/plivo/resources/maskingsession.rb', line 102

def initialize(client, resource_list_json = nil)
  @_name = 'Masking/Session'
  @_resource_type = MaskingSession
  @_identifier_string = 'session_uuid'
  super
  @_is_voice_request = true
end

Instance Method Details

#create(first_party: nil, second_party: nil, session_expiry: nil, call_time_limit: nil, record: nil, record_file_format: nil, recording_callback_url: nil, initiate_call_to_first_party: nil, callback_url: nil, callback_method: nil, ring_timeout: nil, first_party_play_url: nil, second_party_play_url: nil, recording_callback_method: nil, is_pin_authentication_required: nil, generate_pin: nil, generate_pin_length: nil, first_party_pin: nil, second_party_pin: nil, pin_prompt_play: nil, pin_retry: nil, pin_retry_wait: nil, incorrect_pin_play: nil, unknown_caller_play: nil, subaccount: nil, geomatch: nil, force_pin_authentication: nil, virtual_number_cooloff_period: nil, create_session_with_single_party: nil) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/plivo/resources/maskingsession.rb', line 115

def create(first_party: nil, second_party: nil, session_expiry: nil, call_time_limit: nil, record: nil, record_file_format: nil,
           recording_callback_url: nil, initiate_call_to_first_party: nil, callback_url: nil, callback_method: nil, ring_timeout: nil,
           first_party_play_url: nil, second_party_play_url: nil, recording_callback_method: nil, is_pin_authentication_required: nil,
           generate_pin: nil, generate_pin_length: nil, first_party_pin: nil, second_party_pin: nil, pin_prompt_play: nil, pin_retry: nil,
           pin_retry_wait: nil, incorrect_pin_play: nil, unknown_caller_play: nil, subaccount: nil, geomatch: nil, force_pin_authentication: nil, virtual_number_cooloff_period: nil, create_session_with_single_party: nil)

  valid_param?(:first_party, first_party, [String, Symbol], false)
  valid_param?(:second_party, second_party, [String, Symbol], false)

  params = {}
  params[:first_party] = first_party unless first_party.nil?
  params[:second_party] = second_party  unless second_party.nil?
  params[:session_expiry] = session_expiry unless session_expiry.nil?
  params[:call_time_limit] = call_time_limit unless call_time_limit.nil?
  params[:record] = record unless record.nil?
  params[:record_file_format] = record_file_format unless record_file_format.nil?
  params[:recording_callback_url] = recording_callback_url unless recording_callback_url.nil?
  params[:initiate_call_to_first_party] = initiate_call_to_first_party unless initiate_call_to_first_party.nil?
  params[:callback_url] = callback_url unless callback_url.nil?
  params[:callback_method] = callback_method unless callback_method.nil?
  params[:ring_timeout] = ring_timeout unless ring_timeout.nil?
  params[:first_party_play_url] = first_party_play_url unless first_party_play_url.nil?
  params[:second_party_play_url] = second_party_play_url unless second_party_play_url.nil?
  params[:recording_callback_method] = recording_callback_method unless recording_callback_method.nil?
  params[:is_pin_authentication_required] = is_pin_authentication_required unless is_pin_authentication_required.nil?
  params[:generate_pin] = generate_pin unless generate_pin.nil?
  params[:generate_pin_length] = generate_pin_length unless generate_pin_length.nil?
  params[:first_party_pin] = first_party_pin unless first_party_pin.nil?
  params[:second_party_pin] = second_party_pin unless second_party_pin.nil?
  params[:pin_prompt_play] = pin_prompt_play unless pin_prompt_play.nil?
  params[:pin_retry] = pin_retry unless pin_retry.nil?
  params[:pin_retry_wait] = pin_retry_wait unless pin_retry_wait.nil?
  params[:incorrect_pin_play] = incorrect_pin_play unless incorrect_pin_play.nil?
  params[:unknown_caller_play] = unknown_caller_play unless unknown_caller_play.nil?
  params[:subaccount] = subaccount unless subaccount.nil?
  params[:geomatch] = geomatch unless geomatch.nil?
  params[:force_pin_authentication] = force_pin_authentication unless force_pin_authentication.nil?
  params[:virtual_number_cooloff_period] = virtual_number_cooloff_period unless virtual_number_cooloff_period.nil?
  params[:create_session_with_single_party] = create_session_with_single_party unless create_session_with_single_party.nil?
  perform_create(params)
end

#delete(session_uuid) ⇒ Object



213
214
215
216
# File 'lib/plivo/resources/maskingsession.rb', line 213

def delete(session_uuid)
  valid_param?(:session_uuid, session_uuid, [String, Symbol], true)
  MaskingSession.new(@_client, resource_id: session_uuid).delete
end

#eachObject



203
204
205
206
# File 'lib/plivo/resources/maskingsession.rb', line 203

def each
  maskingsession_list = list
  maskingsession_list[:objects].each { |maskingsession| yield maskingsession }
end

#get(session_uuid) ⇒ Object



110
111
112
113
# File 'lib/plivo/resources/maskingsession.rb', line 110

def get(session_uuid)
  valid_param?(:session_uuid, session_uuid, [String, Symbol], true)
  perform_get_with_response(session_uuid)
end

#list(options = nil) ⇒ Object



157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/plivo/resources/maskingsession.rb', line 157

def list(options = nil)
  return perform_list_with_response if options.nil?
  valid_param?(:options, options, Hash, true)

  raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0

  if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
    raise_invalid_request('The maximum number of results that can be '\
                            "fetched is 20. limit can't be more than 20 or less than 1")
  end

  params = %i[
    first_party
    second_party
    virtual_number
    status
    created_time
    created_time__lt
    created_time__gt
    created_time__lte
    created_time__gte
    expiry_time
    expiry_time__lt
    expiry_time__gt
    expiry_time__lte
    expiry_time__gte
    duration
    duration__lt
    duration__gt
    duration__lte
    duration__gte
    limit
    offset
    subaccount
  ].reduce({}) do |result_hash, param|
    if options.key?(param)
      if valid_param?(param, options[param], [String, Symbol], true)
        result_hash[param] = options[param]
      end
    end
    result_hash
  end

  perform_list_with_response(params)
end

#update(session_uuid, options = nil) ⇒ Object



208
209
210
211
# File 'lib/plivo/resources/maskingsession.rb', line 208

def update(session_uuid, options = nil)
  valid_param?(:session_uuid, session_uuid, [String, Symbol], true)
  MaskingSession.new(@_client, resource_id: session_uuid).update(options)
end