genieacs: implantação (TESTING)
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
3726e4d449
commit
6e2473719d
8 files changed
+439
-1
No files matched your search
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* Configurações das instâncias GenieACS
|
||||
* Suporta múltiplas instâncias para expansão futura.
|
||||
*
|
||||
* Variáveis de ambiente esperadas (prefix GENIEACS_<CHAVE>_*):
|
||||
* GENIEACS_GUARAI_URL, GENIEACS_GUARAI_NBI_PORT,
|
||||
* GENIEACS_GUARAI_USER, GENIEACS_GUARAI_PASS
|
||||
*/
|
||||
class GenieACSConfig {
|
||||
constructor() {
|
||||
// Instâncias conhecidas – novas podem ser adicionadas aqui
|
||||
// ou via variáveis de ambiente com o mesmo padrão de chave.
|
||||
this.instances = {
|
||||
guarai: {
|
||||
name: 'Guarai - Clicknet',
|
||||
baseURL: process.env.GENIEACS_GUARAI_URL || 'http://g.clicknetto.com.br',
|
||||
nbiPort: parseInt(process.env.GENIEACS_GUARAI_NBI_PORT, 10) || 7557,
|
||||
user: process.env.GENIEACS_GUARAI_USER || '',
|
||||
password: process.env.GENIEACS_GUARAI_PASS || ''
|
||||
}
|
||||
/*
|
||||
* Exemplo de nova instância futura:
|
||||
* pedro_afonso: {
|
||||
* name: 'Pedro Afonso - Clicknet',
|
||||
* baseURL: process.env.GENIEACS_PEDRO_AFONSO_URL || '',
|
||||
* nbiPort: parseInt(process.env.GENIEACS_PEDRO_AFONSO_NBI_PORT, 10) || 7557,
|
||||
* user: process.env.GENIEACS_PEDRO_AFONSO_USER || '',
|
||||
* password: process.env.GENIEACS_PEDRO_AFONSO_PASS || ''
|
||||
* }
|
||||
*/
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retorna a instância padrão (guarai).
|
||||
*/
|
||||
getDefaultInstance() {
|
||||
return this.instances.guarai;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retorna uma instância pelo nome da chave.
|
||||
* Se a chave não existir, retorna a instância padrão.
|
||||
*/
|
||||
getInstanceByKey(key) {
|
||||
return this.instances[key] || this.getDefaultInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Seleciona a instância correta com base em um texto de localização livre.
|
||||
* Útil quando o bot suportar múltiplas instâncias.
|
||||
*/
|
||||
getInstanceByLocation(location = '') {
|
||||
const loc = location.toLowerCase();
|
||||
if (loc.includes('pedro') || loc.includes('afonso')) {
|
||||
return this.instances.pedro_afonso || this.getDefaultInstance();
|
||||
}
|
||||
return this.getDefaultInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifica se ao menos uma instância está configurada (user + password).
|
||||
*/
|
||||
isReady() {
|
||||
return Object.values(this.instances).some(
|
||||
(inst) => inst.user && inst.password
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retorna a URL NBI completa de uma instância.
|
||||
*/
|
||||
getNBIUrl(instance) {
|
||||
return `${instance.baseURL}:${instance.nbiPort}`;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = GenieACSConfig;
|
||||
Reference in new issue
Block a user