class Plivo::Resources::Powerpack

Public Class Methods

new(client, options = nil) click to toggle source
Calls superclass method Plivo::Base::Resource::new
# File lib/plivo/resources/powerpacks.rb, line 6
def initialize(client, options = nil)
  @_name = 'Powerpack'
  @_identifier_string = 'uuid'
  super
end

Public Instance Methods

add_number(number, options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 171
def add_number(number, options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  if options.nil?
    return perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + number.to_s ,
               'POST')
    return
  end
  params = {}
  if options.key?(:service) &&
    valid_param?(:service, options[:service], String, true)
   params[:service] = options[:service]
  end
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + number.to_s ,
               'POST', params)
end
add_tollfree(tollfree) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 187
def add_tollfree(tollfree)
  number_pool_uuid = getnumberpool_uuid(uuid)
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Tollfree/' + tollfree.to_s ,
               'POST')
end
buy_add_number(options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 271
def buy_add_number(options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  params = {}
  params[:rent] = true
  if options.key?(:service) &&
    valid_param?(:service, options[:service], String, true)
   params[:service] = options[:service]
  end
  if options.key?(:number)
    return perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + options[:number].to_s ,
               'POST', params)
  end
  if options.key?(:country_iso2).nil?
    raise_invalid_request('country_iso is cannot be empty')
  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

  if options.key?(:pattern) &&
    valid_param?(:pattern, options[:pattern], String, true)
   params[:starts_with] = options[:pattern]
  end
  if options.key?(:country_iso2) &&
    valid_param?(:country_iso2, options[:country_iso2], String, true)
   params[:country_iso] = options[:country_iso2]
  end
  if options.key?(:type) &&
    valid_param?(:type, options[:type], String, true)
   params[:type] = options[:type]
  end

 response = perform_custom_action_apiresponse('PhoneNumber',
 'GET', params, true)
  numbers = response['objects'][0]['number']
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + numbers.to_s,
               'POST', params)
end
count_numbers(options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 107
def count_numbers(options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  if options.nil?
   response = perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number',
   'GET')
   meta = response['meta']
   return meta['total_count']
  end
 
  params = {}
  
  %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

  if options.key?(:starts_with) &&
    valid_param?(:starts_with, options[:starts_with], String, true)
   params[:starts_with] = options[:starts_with]
  end
  if options.key?(:country_iso2) &&
    valid_param?(:country_iso2, options[:country_iso2], String, true)
   params[:country_iso2] = options[:country_iso2]
  end
  if options.key?(:type) &&
    valid_param?(:type, options[:type], String, true)
   params[:type] = options[:type]
  end
  if options.key?(:service) &&
    valid_param?(:service, options[:service], String, true)
   params[:service] = options[:service]
  end
  response = perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number',
  'GET', param, true)
  meta = response['meta']
  return meta['total_count']
end
delete(unrent_numbers = false) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 18
def delete(unrent_numbers = false)
    valid_param?(:unrent_numbers, unrent_numbers, [TrueClass, FalseClass],
      false, [true, false])
    
    params = {
      :unrent_numbers => unrent_numbers
    }
    perform_action_apiresponse('', 'DELETE', params)
    # perform_delete(params)
end
find_number(number, options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 156
def find_number(number, options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  if options.nil?
    return perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + number.to_s ,
               'GET')
  end
  params = {}
  if options.key?(:service) &&
    valid_param?(:service, options[:service], String, true)
   params[:service] = options[:service]
  end
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + number.to_s ,
               'GET', params)
end
find_shortcode(shortcode) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 259
def find_shortcode(shortcode)
  number_pool_uuid = getnumberpool_uuid(uuid)
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Shortcode/' + shortcode.to_s ,
               'GET')
end
find_tollfree(tollfree) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 265
def find_tollfree(tollfree)
  number_pool_uuid = getnumberpool_uuid(uuid)
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Tollfree/' + tollfree.to_s ,
               'GET')
end
getnumberpool_uuid(uuid) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 99
def getnumberpool_uuid(uuid)
  valid_param?(:uuid, uuid, [String, Symbol], true)
  response = perform_action()
  numberpool_path = response.number_pool
  numberpool_array = numberpool_path.split("/")
  numberpool_array[5]
end
list_numbers(options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 56
def list_numbers(options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  return perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number',
  'GET') if options.nil?

  params = {}
  
  %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

  if options.key?(:starts_with) &&
    valid_param?(:starts_with, options[:starts_with], String, true)
   params[:starts_with] = options[:starts_with]
  end
  if options.key?(:country_iso2) &&
    valid_param?(:country_iso2, options[:country_iso2], String, true)
   params[:country_iso2] = options[:country_iso2]
  end
  if options.key?(:type) &&
    valid_param?(:type, options[:type], String, true)
   params[:type] = options[:type]
  end
  if options.key?(:service) &&
    valid_param?(:service, options[:service], String, true)
   params[:service] = options[:service]
  end
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number',
  'GET', params, true)
end
list_shortcodes(options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 211
def list_shortcodes(options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  return perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Shortcode',
               'GET') if options.nil?
  params = {}
  %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_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Shortcode',
               'GET', params)
end
list_tollfree(options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 235
def list_tollfree(options = nil)
  number_pool_uuid = getnumberpool_uuid(uuid)
  return perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Tollfree',
               'GET') if options.nil?
  params = {}
  %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_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Tollfree',
               'GET', params)
end
numberpool() click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 12
def numberpool
  number_pool_uuid = getnumberpool_uuid(uuid)
  options = {'number_pool_id' => number_pool_uuid}
  NumberPool.new(@_client, {resource_json: options})
end
remove_number(number, unrent= false) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 193
def remove_number(number, unrent= false)
  number_pool_uuid = getnumberpool_uuid(uuid)
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Number/' + number.to_s ,
               'DELETE', { unrent: unrent }, false)
end
remove_shortcode(number) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 205
def remove_shortcode(number)
  number_pool_uuid = getnumberpool_uuid(uuid)
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Shortcode/' + number.to_s ,
               'DELETE', { unrent: false }, false)
end
remove_tollfree(number, unrent= false) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 199
def remove_tollfree(number, unrent= false)
  number_pool_uuid = getnumberpool_uuid(uuid)
  perform_custom_action_apiresponse('NumberPool/' + number_pool_uuid + '/Tollfree/' + number.to_s ,
               'DELETE', { unrent: unrent }, false)
end
to_s() click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 323
def to_s
  {
    name: @name,
    application_type: @application_type,
    application_id: @application_id,
    sticky_sender: @sticky_sender,
    local_connect: @local_connect,
    uuid: @uuid,
    number_pool:@number_pool,
    created_on:@created_on,
    number_priority:@number_priority
  }.to_s
end
update(options = nil) click to toggle source
# File lib/plivo/resources/powerpacks.rb, line 29
def update(options = nil)
  valid_param?(:options, options, Hash, true)
  params = {}
  if options.key?(:application_type) 
    params[:application_type] = options[:application_type]
  end
 
  if options.key?(:application_id) 
    params[:application_id] = options[:application_id]
  end
 
  if options.key?(:sticky_sender) 
    params[:sticky_sender] = options[:sticky_sender]
  end

  if options.key?(:local_connect) 
    params[:local_connect] = options[:local_connect]
  end
  if options.key?(:name) 
    params[:name] = options[:name]
  end
  if options.key?(:number_priority) 
    params[:number_priority] = options[:number_priority]
  end
  perform_action_apiresponse('', 'POST', params)
end