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