Sha256: afdf03b4754a87a9e834e02b19ac9d7adad1e081e7c5a9b7b5f4f0a065079659
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
module Billogram module Endpoint def self.included(base) base.include(InstanceMethods) base.extend(ClassMethods) end module InstanceMethods def update(attributes) self.class.perform_request(:put, "#{endpoint}/#{id}", attributes) end def delete self.class.perform_request(:delete, "#{endpoint}/#{id}") end def endpoint self.class.endpoint end end module ClassMethods attr_writer :default_search_options def default_search_options @default_search_options ||= { page: 1, page_size: 50 } end def endpoint(value = nil) @endpoint = value if value @endpoint || name.demodulize.underscore end def search(options = {}) query = default_search_options.merge(options) perform_request(:get, "#{endpoint}", query) end def fetch(id = nil) perform_request(:get, "#{endpoint}/#{id}") end def create(attributes) perform_request(:post, "#{endpoint}", attributes) end def perform_request(type, url, params = {}) response = Request.new(type, url, params).execute build_objects(response) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
billogram-0.4.2 | lib/billogram/endpoint.rb |