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

Version Path
pagarme-1.8 lib/pagarme/model.rb
pagarme-1.7 lib/pagarme/model.rb
pagarme-1.5 lib/pagarme/model.rb
pagarme-1.4 lib/pagarme/model.rb
pagarme-1.2 lib/pagarme/model.rb
pagarme-1.1 lib/pagarme/model.rb
pagarme-1.0 lib/pagarme/model.rb