Module: Beyonic::AbstractApi::ClassMethods
- Defined in:
- lib/beyonic/abstract_api.rb
Instance Method Summary collapse
- #create(payload = {}, header_overrides = {}) ⇒ Object
- #delete(id) ⇒ Object
- #get(id) ⇒ Object
- #list(payload = {}) ⇒ Object
- #set_endpoint_resource(resource) ⇒ Object
- #update(id, payload, header_overrides = {}) ⇒ Object
Instance Method Details
#create(payload = {}, header_overrides = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/beyonic/abstract_api.rb', line 11 def create(payload = {}, header_overrides = {}) # transform metadata from hash notation to dot notation if (payload.has_key?:metadata) && (!payload[:metadata].empty?) payload[:metadata].each do |key, value| payload["metadata.#{key}"] = value end payload.delete:metadata end resp = RestClient.post(@endpoint_url, payload, headers(header_overrides)) self.new(Oj.load(resp)) rescue RestClient::BadRequest => e raise ApiError.new(Oj.load(e.response.body)) end |
#delete(id) ⇒ Object
49 50 51 52 |
# File 'lib/beyonic/abstract_api.rb', line 49 def delete(id) resp = RestClient.delete("#{@endpoint_url}/#{id}", headers) return true if resp == "" end |
#get(id) ⇒ Object
37 38 39 40 |
# File 'lib/beyonic/abstract_api.rb', line 37 def get(id) resp = RestClient.get("#{@endpoint_url}/#{id}", headers) self.new(Oj.load(resp)) end |
#list(payload = {}) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/beyonic/abstract_api.rb', line 25 def list(payload = {}) # Turn payload into query parameters require "addressable/uri" uri = Addressable::URI.new uri.query_values = payload resp = RestClient.get(@endpoint_url + '?' + uri.query, headers) ret = self.new(Oj.load(resp)) ret.results = ret.results.map { |obj_attrs| self.new(obj_attrs)} return ret end |
#set_endpoint_resource(resource) ⇒ Object
7 8 9 |
# File 'lib/beyonic/abstract_api.rb', line 7 def set_endpoint_resource(resource) @endpoint_url = Beyonic.endpoint_base + resource end |
#update(id, payload, header_overrides = {}) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/beyonic/abstract_api.rb', line 42 def update(id, payload, header_overrides = {}) resp = RestClient.patch("#{@endpoint_url}/#{id}", payload, headers(header_overrides)) self.new(Oj.load(resp)) rescue RestClient::BadRequest => e raise ApiError.new(Oj.load(e.response.body)) end |