Class: ZuoraConnect::Login

Inherits:
Object
  • Object
show all
Defined in:
app/models/zuora_connect/login.rb

Instance Method Summary collapse

Constructor Details

#initialize(fields) ⇒ Login

Returns a new instance of Login.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/models/zuora_connect/login.rb', line 4

def initialize (fields)
  @clients = {}
  if fields["tenant_type"] == "Zuora" && fields["entities"] && fields["entities"].size > 0
    @clients["Default"] = ::ZuoraAPI::Login.new(fields.map{|k,v| [k.to_sym, v]}.to_h)
    @default_entity = fields["entities"][0]["id"] if fields["entities"].size == 1
    fields["entities"].each do |entity|
       = fields.map{|k,v| [k.to_sym, v]}.to_h
      [:entity_id] = entity["id"]
      @clients[entity["id"]] = ::ZuoraAPI::Login.new()
    end
  elsif fields["tenant_type"] == "Zuora"
    @clients["Default"] = ::ZuoraAPI::Login.new(fields.map{|k,v| [k.to_sym, v]}.to_h)
  end

  self.attr_builder("available_entities",@clients.keys) if fields["tenant_type"] == "Zuora"

  fields.each do |k,v|
    self.attr_builder(k,v)
  end
  @default_entity ||= "Default"
end

Instance Method Details

#attr_builder(field, val) ⇒ Object



26
27
28
29
# File 'app/models/zuora_connect/login.rb', line 26

def attr_builder(field,val)
  singleton_class.class_eval { attr_accessor "#{field}" }
  send("#{field}=", val)
end

#client(id = @default_entity) ⇒ Object



31
32
33
# File 'app/models/zuora_connect/login.rb', line 31

def client(id = @default_entity)
  return id.blank? ? @clients[@default_entity] : @clients[id]
end