class ZuoraConnect::Login

def initialize (fields)

def initialize (fields)
  @clients = {}
  if fields["tenant_type"] == "Zuora"
    login_fields = fields.map{|k,v| [k.to_sym, v]}.to_h
    fields["authentication_type"] = "basic" if fields["authentication_type"].nil? || fields["authentication_type"].blank?
    
    @clients["Default"] = "::ZuoraAPI::#{fields["authentication_type"].capitalize}".constantize.new(login_fields)
    @default_entity = fields["entities"][0]["id"] if fields["entities"].size == 1 if fields["entities"] && fields["entities"].size > 0
    if fields["entities"] && fields["entities"].size > 0
      fields["entities"].each do |entity|
        params = {:entity_id => entity["id"]}.merge(login_fields)
        @clients[entity["id"]] =  "::ZuoraAPI::#{fields["authentication_type"].capitalize}".constantize.new(params)
      end
    end
    self.attr_builder("available_entities", @clients.keys) 
  end
  fields.each do |k,v|
    self.attr_builder(k,v)
  end
  @default_entity ||= "Default"
end