Sha256: a25985e6d0f430b438a43f59d19aacb771ac25c679721f4cc73890b4ca582a35
Contents?: true
Size: 1.15 KB
Versions: 7
Compression:
Stored size: 1.15 KB
Contents
module PagarMe class Model < PagarMeObject def self.class_name self.name.split('::')[-1] end def self.url() if self == Model raise PagarMeError.new('Cant request for model') end "/#{CGI.escape(class_name.downcase)}s" end def url raise PagarMeError.new("ID invalido", 'id') if !self.id "#{self.class.url}/#{CGI.escape(id.to_s)}" end def create request = PagarMe::Request.new(self.class.url, 'POST') request.parameters = self.to_hash response = request.run update(response) end def save request = PagarMe::Request.new(self.url, 'PUT') request.parameters = self.unsaved_values response = request.run update(response) end def self.find_by_id(id) request = PagarMe::Request.new(self.url + "/#{id}", 'GET') response = request.run PagarMe::Util.convert_to_pagarme_object(response) end def self.all(page = 1, count = 10) raise RequestError.new("Invalid page count") if page < 1 or count < 1 request = PagarMe::Request.new(url, 'GET') request.parameters = { :page => page, :count => count } response = request.run response.map { |obj_response| self.new(obj_response) } end end end
Version data entries
7 entries across 7 versions & 1 rubygems