class Sipwizard::DialPlan

Constants

API_PATH_MAP

Public Class Methods

build_for_request(h) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 23
def self.build_for_request(h)
  dial_plan = self.new(h)
  dial_plan = Hash[dial_plan.map{ |k,v| ["#{k}".camelize, v] }]
  dial_plan['ID'] = dial_plan.delete('Id')

  dial_plan.delete_if{ |_,v| v.nil? } #delete all the keys for which we dont have value
end
copy(id) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 67
def self.copy(id)
  result = Connection.new.get(API_PATH_MAP[:copy], {id: id})

  raise ArgumentError.new(result["Error"]) unless result['Success']

  result['Result'] #true | false
end
count(params={}) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 31
def self.count(params={})
  response = Connection.new.get(API_PATH_MAP[:count], params)

  response['Success'] ? response['Result'] : -1
end
create(params) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 50
def self.create(params)
  payload = self.build_for_request(params)
  result = Connection.new.post(API_PATH_MAP[:create], payload)

  raise ArgumentError.new(result["Error"]) unless result['Success']

  result['Result'] #ID
end
delete(id) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 59
def self.delete(id)
  result = Connection.new.get(API_PATH_MAP[:delete], {id: id})

  raise ArgumentError.new(result["Error"]) unless result['Success']

  result['Result'] #true | false
end
find(id) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 41
def self.find(id)
  relation = self.where({ ID: id }).count(1)
  result = Connection.new.get(API_PATH_MAP[:find], relation.relation)

  return nil unless result['Success']

  self.new(result['Result'][0])
end
where(params) click to toggle source
# File lib/sipwizard/dial_plan.rb, line 37
def self.where(params)
  Relation.new.where(params)
end

Public Instance Methods

copy() click to toggle source
# File lib/sipwizard/dial_plan.rb, line 87
def copy
  DialPlan.copy(self.id)
end
delete() click to toggle source
# File lib/sipwizard/dial_plan.rb, line 83
def delete
  DialPlan.delete(self.id)
end
save() click to toggle source
# File lib/sipwizard/dial_plan.rb, line 75
def save
  payload = DialPlan.build_for_request(self.to_hash)
  result = Connection.new.post(API_PATH_MAP[:update], payload)
  raise ArgumentError.new(result["Error"]) unless result['Success']

  result['Result'] #ID
end