Module: ZimbraRestApi::Helpers
- Defined in:
- lib/helpers.rb
Instance Method Summary collapse
- #object_factory(resource) ⇒ Object
- #resource_add_grant(resource, id, params) ⇒ Object
- #resource_count(resource, params = {}) ⇒ Object
- #resource_create(resource, params) ⇒ Object
- #resource_delete(resource, id) ⇒ Object
- #resource_index(resource, params = {}) ⇒ Object
- #resource_revoke_grant(resource, id, params) ⇒ Object
- #resource_show(resource, id) ⇒ Object
- #resource_update(resource, id, params) ⇒ Object
- #set_pagination_headers(total, pagination) ⇒ Object
Instance Method Details
#object_factory(resource) ⇒ Object
91 92 93 |
# File 'lib/helpers.rb', line 91 def object_factory(resource) "ZimbraRestApi::#{resource.camelize(true)}".constantize end |
#resource_add_grant(resource, id, params) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/helpers.rb', line 62 def resource_add_grant(resource, id, params) object = object_factory(resource) result = object.find(id) return status 404 if result.nil? begin json result.add_grant(params) rescue Exception => e json({ errors: [ e. ]}) end end |
#resource_count(resource, params = {}) ⇒ Object
17 18 19 20 21 |
# File 'lib/helpers.rb', line 17 def resource_count(resource, params = {}) object = object_factory(resource) params.merge!('max_results' => 0) json object.count(params) end |
#resource_create(resource, params) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/helpers.rb', line 30 def resource_create(resource, params) object = object_factory(resource) begin json object.create(params) rescue Zimbra::HandsoapErrors::SOAPFault => e json({ errors: [ e. ]}) end end |
#resource_delete(resource, id) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/helpers.rb', line 50 def resource_delete(resource, id) object = object_factory(resource) result = object.find(id) return status 404 if result.nil? begin result.delete status 200 rescue Exception => e json({ errors: [ e. ]}) end end |
#resource_index(resource, params = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/helpers.rb', line 4 def resource_index(resource, params = {}) object = object_factory(resource) begin result = object.all(params) return json({}) if result.nil? set_pagination_headers(result[:search_total], params) json(result[:results]) rescue ZimbraRestApi::TO_MANY_RESULTS => e result = { 'errors' => { e.to_s => e. } } json result end end |
#resource_revoke_grant(resource, id, params) ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/helpers.rb', line 73 def resource_revoke_grant(resource, id, params) object = object_factory(resource) result = object.find(id) return status 404 if result.nil? begin json result.revoke_grant(params) rescue Exception => e json({ errors: [ e. ]}) end end |
#resource_show(resource, id) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/helpers.rb', line 23 def resource_show(resource, id) object = object_factory(resource) result = object.find(id) return json(result) if result status 404 end |
#resource_update(resource, id, params) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/helpers.rb', line 39 def resource_update(resource, id, params) object = object_factory(resource) result = object.find(id) return status 404 if result.nil? begin json result.update_attributes(params) rescue Exception => e json({ errors: [ e. ]}) end end |
#set_pagination_headers(total, pagination) ⇒ Object
84 85 86 87 88 89 |
# File 'lib/helpers.rb', line 84 def set_pagination_headers(total, pagination) headers('X-Total' => total.to_s, 'X-Page' => (pagination['page'] || 1).to_s, 'X-Per-Page' => (pagination['per_page'] || 10).to_s ) end |