class Sipwizard::Provider

Constants

API_PATH_MAP

Public Class Methods

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

  provider.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/provider.rb, line 34
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/provider.rb, line 65
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/provider.rb, line 87
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/provider.rb, line 44
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/provider.rb, line 40
def self.where(params)
  Relation.new.where(params)
end

Public Instance Methods

binding(cache=true) click to toggle source
# File lib/sipwizard/provider.rb, line 82
def binding(cache=true)
  return @binding if @binding && cache
  @binding = ProviderBinding.find_by_provider_id(self.id)
end
delete() click to toggle source
# File lib/sipwizard/provider.rb, line 95
def delete
  Provider.delete(self.id)
end
save() click to toggle source
# File lib/sipwizard/provider.rb, line 74
def save
  payload = Provider.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