class MfCloud::Invoice::Api::Base

Public Class Methods

allowed_methods() click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 22
def allowed_methods
  @allowed_methods ||= []
end
collection_class() click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 18
def collection_class
  Object.const_get(collection_name)
end
collection_name() click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 14
def collection_name
  "#{name.sub('Api', 'Collection')}Collection"
end
model_class() click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 10
def model_class
  Object.const_get(model_name)
end
model_name() click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 6
def model_name
  name.sub('Api', 'Model')
end
new(client) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 33
def initialize(client)
  @client = client
end

Private Class Methods

allow_method(*methods) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 28
def allow_method(*methods)
  @allowed_methods = methods
end

Public Instance Methods

all(params = {}) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 37
def all(params = {})
  fail MethodNotAllowed, "#{self.class.name} has not allowed :all" unless self.class.allowed_methods.include? :all

  response_body = @client.get(self.class::PATH, params)
  self.class.collection_class.new(
    response_body[self.class::COLLECTION_KEY],
    response_body["meta"]
  )
end
create(params) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 54
def create(params)
  fail MethodNotAllowed, "#{self.class.name} has not allowed :create" unless self.class.allowed_methods.include? :create

  response_body = @client.post(self.class::PATH, self.class::BASE_NAME => params)
  self.class.model_class.new(response_body)
end
delete(id) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 68
def delete(id)
  fail MethodNotAllowed, "#{self.class.name} has not allowed :delete" unless self.class.allowed_methods.include? :delete

  @client.delete("#{self.class::PATH}/#{id}")
end
get(id) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 47
def get(id)
  fail MethodNotAllowed, "#{self.class.name} has not allowed :get" unless self.class.allowed_methods.include? :get

  response_body = @client.get("#{self.class::PATH}/#{id}")
  self.class.model_class.new(response_body)
end
update(id, params) click to toggle source
# File lib/mf_cloud/invoice/api/base.rb, line 61
def update(id, params)
  fail MethodNotAllowed, "#{self.class.name} has not allowed :update" unless self.class.allowed_methods.include? :update

  response_body = @client.put("#{self.class::PATH}/#{id}", self.class::BASE_NAME => params)
  self.class.model_class.new(response_body)
end