class Plivo::Resources::ApplicationInterface

@!method get @!method create @!method list

Public Class Methods

new(client, resource_list_json = nil) click to toggle source
Calls superclass method Plivo::Base::ResourceInterface::new
# File lib/plivo/resources/applications.rb, line 109
def initialize(client, resource_list_json = nil)
  @_name = 'Application'
  @_resource_type = Application
  @_identifier_string = 'app_id'
  super
  @_is_voice_request = true
end

Public Instance Methods

create(app_name, options = nil) click to toggle source

@param [String] app_name @param [Hash] options @option options [String] :answer_url - The URL invoked by Plivo when a call executes this application. @option options [String] :answer_method - The method used to call the answer_url. Defaults to POST. @option options [String] :hangup_url - The URL that will be notified by Plivo when the call hangs up. Defaults to answer_url. @option options [String] :hangup_method - The method used to call the hangup_url. Defaults to POST. @option options [String] :fallback_answer_url - Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response. @option options [String] :fallback_method - The method used to call the fallback_answer_url. Defaults to POST. @option options [String] :message_url - The URL that will be notified by Plivo when an inbound message is received. Defaults not set. @option options [String] :message_method - The method used to call the message_url. Defaults to POST. @option options [Boolean] :default_number_app - If set to true, this parameter ensures that newly created numbers, which don’t have an app_id, point to this application. @option options [Boolean] :default_endpoint_app - If set to true, this parameter ensures that newly created endpoints, which don’t have an app_id, point to this application. @option options [String] :subaccount - Id of the subaccount, in case only subaccount applications are needed. @option options [Boolean] :log_incoming_messages - If set to true, this parameter ensures that incoming messages are logged. @option options [Boolean] :public_uri - If set to true, this parameter enables public_uri. @return [Application] Application

# File lib/plivo/resources/applications.rb, line 140
def create(app_name, options = nil)
  valid_param?(:app_name, app_name, [String, Symbol], true)
  valid_param?(:options, options, Hash, true) unless options.nil?

  params = {
    app_name: app_name
  }

  return perform_create(params) if options.nil?

  %i[answer_url hangup_url fallback_answer_url message_url subaccount]
    .each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], true)
      params[param] = options[param]
    end
  end

  %i[answer_method hangup_method fallback_method message_method]
    .each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], true, %w[GET POST])
      params[param] = options[param]
    end
  end

  %i[default_number_app default_endpoint_app log_incoming_messages public_uri].each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [TrueClass, FalseClass], true)
      params[param] = options[param]
    end
  end

  perform_create(params)
end
delete(app_id, options = nil) click to toggle source

Delete an application @param [String] app_id @param [Hash] options @option options [Boolean] :cascade - delete associated endpoints @option options [String] :new_endpoint_application - Link associated endpoints to this app

# File lib/plivo/resources/applications.rb, line 251
def delete(app_id, options = nil)
  valid_param?(:app_id, app_id, [String, Symbol], true)
  Application.new(@_client,
                  resource_id: app_id).delete(options)
end
each() { |app| ... } click to toggle source
# File lib/plivo/resources/applications.rb, line 212
def each
  offset = 0
  loop do
    app_list = list(offset: offset)
    app_list[:objects].each { |app| yield app }
    offset += 20
    return unless app_list.length == 20
  end
end
get(app_id) click to toggle source

@param [String] app_id @return [Application] Application

# File lib/plivo/resources/applications.rb, line 119
def get(app_id)
  valid_param?(:app_id, app_id, [String, Symbol], true)
  perform_get(app_id)
end
list(options = nil) click to toggle source

Lists all applications @param [Hash] options @option options [String] :subaccount @option options [Int] :offset @option options [Int] :limit @return [Hash]

# File lib/plivo/resources/applications.rb, line 183
def list(options = nil)
  return perform_list if options.nil?

  params = {}

  if options.key?(:subaccount) &&
     valid_param?(:subaccount, options[:subaccount], [String, Symbol], true)
    params[:subaccount] = options[:subaccount]
  end

  %i[offset limit].each do |param|
    if options.key?(param) && valid_param?(param, options[param],
                                           [Integer, Integer], true)
      params[param] = options[param]
    end
  end

  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

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

  perform_list(params)
end
update(app_id, options = nil) click to toggle source

Modify an application @param [String] app_id @param [Hash] options @option options [String] :answer_url - The URL invoked by Plivo when a call executes this application. @option options [String] :answer_method - The method used to call the answer_url. Defaults to POST. @option options [String] :hangup_url - The URL that will be notified by Plivo when the call hangs up. Defaults to answer_url. @option options [String] :hangup_method - The method used to call the hangup_url. Defaults to POST. @option options [String] :fallback_answer_url - Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response. @option options [String] :fallback_method - The method used to call the fallback_answer_url. Defaults to POST. @option options [String] :message_url - The URL that will be notified by Plivo when an inbound message is received. Defaults not set. @option options [String] :message_method - The method used to call the message_url. Defaults to POST. @option options [Boolean] :default_number_app - If set to true, this parameter ensures that newly created numbers, which don’t have an app_id, point to this application. @option options [Boolean] :default_endpoint_app - If set to true, this parameter ensures that newly created endpoints, which don’t have an app_id, point to this application. @option options [String] :subaccount - Id of the subaccount, in case only subaccount applications are needed. @option options [Boolean] :log_incoming_messages - If set to true, this parameter ensures that incoming messages are logged. @return [Application] Application

# File lib/plivo/resources/applications.rb, line 239
def update(app_id, options = nil)
  valid_param?(:app_id, app_id, [String, Symbol], true)
  Application.new(@_client,
                  resource_id: app_id).update(options)
end