class Sipwizard::Account

Constants

API_PATH_MAP

Public Class Methods

build_for_request(h) click to toggle source
# File lib/sipwizard/account.rb, line 38
def self.build_for_request(h)
  account = self.new(h)
  account = Hash[account.map{ |k,v| ["#{k}".camelize, v] }]
  account['ID']                = account.delete('Id')
  account['SIPDomain']         = account.delete('Domain')
  account['SIPUsername']       = account.delete('Username')
  account['SIPPassword']       = account.delete('Password')
  account['IPAddressACL']      = account.delete('IpAddressAcl')
  account['AvatarURL']         = account.delete('AvatarUrl')
  account['NetworkID']         = account.delete('NetworkId')
  account['SendNATKeepAlives'] = account.delete('SendNatKeepAlives')

  account.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/account.rb, line 53
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/account.rb, line 91
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/account.rb, line 100
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/account.rb, line 63
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
first_by(args) click to toggle source
# File lib/sipwizard/account.rb, line 72
def self.first_by(args)
  relation = self.where(args).count(1)
  result = Connection.new.get(API_PATH_MAP[:find], relation.relation)

  return nil unless result['Success']

  self.new(result['Result'][0])
end
first_x_by(args) click to toggle source
# File lib/sipwizard/account.rb, line 81
def self.first_x_by(args)
  count = args.delete(:count)
  relation = self.where(args).count(count)
  result = Connection.new.get(API_PATH_MAP[:find], relation.relation)

  return nil unless result['Success']

  result['Result'].map{ |r| self.new(r) }
end
where(params) click to toggle source
# File lib/sipwizard/account.rb, line 59
def self.where(params)
  Relation.new.where(params)
end

Public Instance Methods

delete() click to toggle source
# File lib/sipwizard/account.rb, line 116
def delete
  Account.delete(self.id)
end
save() click to toggle source
# File lib/sipwizard/account.rb, line 108
def save
  payload = Account.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