Class: PagarMe::Model

Inherits:
PagarMeObject show all
Defined in:
lib/pagarme/model.rb

Direct Known Subclasses

Address, Customer, Phone, Plan, TransactionCommon

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PagarMeObject

#[], #[]=, build, #each, #initialize, #to_hash, #unsaved_values, #update

Constructor Details

This class inherits a constructor from PagarMe::PagarMeObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class PagarMe::PagarMeObject

Class Method Details

.all(page = 1, count = 10) ⇒ Object

Raises:



51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/pagarme/model.rb', line 51

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

.class_nameObject



4
5
6
# File 'lib/pagarme/model.rb', line 4

def self.class_name
  self.name.split('::')[-1]
end

.find_by(hash, page = 1, count = 10) ⇒ Object

Raises:



40
41
42
43
44
45
46
47
48
49
# File 'lib/pagarme/model.rb', line 40

def self.find_by(hash, page = 1, count = 10)
  raise RequestError.new("Invalid page count") if page < 1 or count < 1

  request = PagarMe::Request.new(self.url,  'GET')

  request.parameters = hash
  request.parameters.merge!({:page => page, :count => count})
  response = request.run
  PagarMe::Util.convert_to_pagarme_object(response)
end

.find_by_id(id) ⇒ Object



34
35
36
37
38
# File 'lib/pagarme/model.rb', line 34

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

.urlObject



8
9
10
11
12
13
# File 'lib/pagarme/model.rb', line 8

def self.url()
  if self == Model
    raise PagarMeError.new('Cant request for model')
  end
  "/#{CGI.escape(class_name.downcase)}s"
end

Instance Method Details

#createObject



20
21
22
23
24
25
# File 'lib/pagarme/model.rb', line 20

def create
  request = PagarMe::Request.new(self.class.url, 'POST')
  request.parameters = self.to_hash
  response = request.run
  update(response)
end

#saveObject



27
28
29
30
31
32
# File 'lib/pagarme/model.rb', line 27

def save
  request = PagarMe::Request.new(self.url, 'PUT')
  request.parameters = self.unsaved_values
  response = request.run
  update(response)
end

#urlObject

Raises:



15
16
17
18
# File 'lib/pagarme/model.rb', line 15

def url
  raise PagarMeError.new("ID invalido", 'id') if !self.id
  "#{self.class.url}/#{CGI.escape(id.to_s)}"
end