Class: Sipwizard::DialPlan
- Inherits:
-
Hashie::Trash
- Object
- Hashie::Trash
- Sipwizard::DialPlan
- Defined in:
- lib/sipwizard/dial_plan.rb
Constant Summary collapse
- API_PATH_MAP =
{ count: 'dialplan/count', find: 'dialplan/get', create: 'dialplan/add', delete: 'dialplan/delete', update: 'dialplan/update', copy: 'dialplan/copy' }
Class Method Summary collapse
- .build_for_request(h) ⇒ Object
- .copy(id) ⇒ Object
- .count(params = {}) ⇒ Object
- .create(params) ⇒ Object
- .delete(id) ⇒ Object
- .find(id) ⇒ Object
- .where(params) ⇒ Object
Instance Method Summary collapse
Class Method Details
.build_for_request(h) ⇒ Object
23 24 25 26 27 28 29 |
# 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) ⇒ Object
67 68 69 70 71 72 73 |
# 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 = {}) ⇒ Object
31 32 33 34 35 |
# 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) ⇒ Object
50 51 52 53 54 55 56 57 |
# 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) ⇒ Object
59 60 61 62 63 64 65 |
# 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) ⇒ Object
41 42 43 44 45 46 47 48 |
# 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 |
Instance Method Details
#copy ⇒ Object
87 88 89 |
# File 'lib/sipwizard/dial_plan.rb', line 87 def copy DialPlan.copy(self.id) end |
#delete ⇒ Object
83 84 85 |
# File 'lib/sipwizard/dial_plan.rb', line 83 def delete DialPlan.delete(self.id) end |
#save ⇒ Object
75 76 77 78 79 80 81 |
# 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 |