class Sipwizard::Rate

Constants

API_PATH_MAP

Public Class Methods

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

  rate.delete_if{ |_,v| v.nil? } #delete all the keys for which we dont have value
end
count(params={}) click to toggle source
# File lib/sipwizard/rate.rb, line 20
def self.count(params={})
  response = connection.get(API_PATH_MAP[:count], params)

  response['Success'] ? response['Result'] : -1
end
create(params) click to toggle source
# File lib/sipwizard/rate.rb, line 34
def self.create(params)
  payload = self.build_for_request(params)
  result = connection.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/rate.rb, line 64
def self.delete(id)
  result = connection.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/rate.rb, line 47
def self.find(id)
  relation = self.where({ ID: id }).count(1)
  result = connection.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/rate.rb, line 43
def self.where(params)
  Relation.new.where(params)
end

Private Class Methods

connection() click to toggle source
# File lib/sipwizard/rate.rb, line 77
def self.connection
  Connection.new(api_type: :accounting)
end

Public Instance Methods

delete() click to toggle source
# File lib/sipwizard/rate.rb, line 72
def delete
  Rate.delete(self.id)
end
save() click to toggle source
# File lib/sipwizard/rate.rb, line 56
def save
  payload = Rate.build_for_request(self.to_hash)
  result = Connection.new(api_type: :accounting).post(API_PATH_MAP[:update], payload)
  raise ArgumentError.new(result["Error"]) unless result['Success']

  result['Result'] #ID
end