Class: Iugu::Factory

Inherits:
Object
  • Object
show all
Defined in:
lib/iugu/factory.rb

Class Method Summary collapse

Class Method Details

.create_from_response(object_type, response, errors = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/iugu/factory.rb', line 3

def self.create_from_response(object_type, response, errors = nil)
  if response.nil?
    obj = Iugu.const_get(Iugu::Utils.camelize(object_type)).new
    obj.errors = errors if errors
    obj
  elsif response.is_a?(Array)
    results = []
    response.each do |i|
      results.push Iugu.const_get(Iugu::Utils.camelize(object_type)).new i
    end
    Iugu::SearchResult.new results, results.count
  elsif response['items'] && response['totalItems']
    results = []
    response['items'].each do |v|
      results.push self.create_from_response(object_type, v)
    end
    Iugu::SearchResult.new results, response['totalItems']
  else
    Iugu.const_get(Iugu::Utils.camelize(object_type)).new response
  end
end