suporte: fix técnicos
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
384d04f383
commit
5193b2df08
2 files changed
+15
-19
No files matched your search
+13
-18
@@ -5685,39 +5685,34 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
if (!session) return;
|
if (!session) return;
|
||||||
|
|
||||||
if (!input) {
|
if (!input) {
|
||||||
// Primeira vez nesta etapa - buscar tipos de atendimento
|
// Primeira vez nesta etapa - buscar funcionários ativos
|
||||||
await this.bot.sendMessage(session.chatId, `🔍 Buscando tipos de atendimento disponíveis...`);
|
await this.bot.sendMessage(session.chatId, `🔍 Buscando técnicos disponíveis...`);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Usar tipos de atendimento ao invés de técnicos
|
const resultado = await this.topsapp.obterFuncionarios();
|
||||||
let resultado = await this.topsapp.obterSuporteTiposAtendimento();
|
|
||||||
|
|
||||||
if (!resultado.success || !resultado.data?.dados || resultado.data.dados.length === 0) {
|
|
||||||
// Fallback para técnicos se tipos de atendimento não funcionarem
|
|
||||||
console.log('🔄 Fallback para técnicos...');
|
|
||||||
resultado = await this.topsapp.obterTecnicos();
|
|
||||||
|
|
||||||
if (!resultado.success) {
|
if (!resultado.success) {
|
||||||
await this.bot.sendMessage(session.chatId,
|
await this.bot.sendMessage(session.chatId,
|
||||||
`❌ **Erro ao buscar tipos de atendimento**\n\n` +
|
`❌ **Erro ao buscar técnicos**\n\n` +
|
||||||
`⚠️ ${resultado.error}\n\n` +
|
`⚠️ ${resultado.error}\n\n` +
|
||||||
`🔄 Reiniciando processo...`
|
`🔄 Reiniciando processo...`
|
||||||
);
|
);
|
||||||
this.suporteSessions.delete(sessionId);
|
this.suporteSessions.delete(sessionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!resultado.data?.dados || resultado.data.dados.length === 0) {
|
const tecnicos = resultado.data?.dados || resultado.dados || [];
|
||||||
|
|
||||||
|
if (tecnicos.length === 0) {
|
||||||
await this.bot.sendMessage(session.chatId,
|
await this.bot.sendMessage(session.chatId,
|
||||||
`❌ **Nenhum tipo de atendimento encontrado**\n\n` +
|
`❌ **Nenhum técnico ativo encontrado**\n\n` +
|
||||||
`🔄 Reiniciando processo...`
|
`🔄 Reiniciando processo...`
|
||||||
);
|
);
|
||||||
this.suporteSessions.delete(sessionId);
|
this.suporteSessions.delete(sessionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
session.dados.tecnicos = resultado.data.dados;
|
session.dados.tecnicos = tecnicos;
|
||||||
await this.mostrarOpcoesTecnicos(session);
|
await this.mostrarOpcoesTecnicos(session);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -5756,7 +5751,7 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
* Mostrar opções de técnicos/tipos de atendimento
|
* Mostrar opções de técnicos/tipos de atendimento
|
||||||
*/
|
*/
|
||||||
async mostrarOpcoesTecnicos(session) {
|
async mostrarOpcoesTecnicos(session) {
|
||||||
let message = `👨🔧 **Tipos de atendimento disponíveis:**\n\n`;
|
let message = `👨🔧 **Técnicos disponíveis:**\n\n`;
|
||||||
|
|
||||||
// Validar se técnicos é um array
|
// Validar se técnicos é um array
|
||||||
if (!Array.isArray(session.dados.tecnicos)) {
|
if (!Array.isArray(session.dados.tecnicos)) {
|
||||||
@@ -5764,18 +5759,18 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
type: typeof session.dados.tecnicos,
|
type: typeof session.dados.tecnicos,
|
||||||
value: session.dados.tecnicos
|
value: session.dados.tecnicos
|
||||||
});
|
});
|
||||||
throw new Error(`Dados de tipos de atendimento inválidos: ${typeof session.dados.tecnicos}`);
|
throw new Error(`Dados de técnicos inválidos: ${typeof session.dados.tecnicos}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
session.dados.tecnicos.forEach((tecnico, index) => {
|
session.dados.tecnicos.forEach((tecnico, index) => {
|
||||||
// Mostrar nome ou descrição do tipo de atendimento
|
// Mostrar nome do técnico
|
||||||
const nome = tecnico.nome || tecnico.descricao || tecnico.tipo || tecnico.tecnico;
|
const nome = tecnico.nome || tecnico.descricao || tecnico.tipo || tecnico.tecnico;
|
||||||
message += `**${index + 1}.** ${nome}\n`;
|
message += `**${index + 1}.** ${nome}\n`;
|
||||||
if (tecnico.email) message += ` 📧 ${tecnico.email}\n`;
|
if (tecnico.email) message += ` 📧 ${tecnico.email}\n`;
|
||||||
message += `\n`;
|
message += `\n`;
|
||||||
});
|
});
|
||||||
|
|
||||||
message += `Digite o **número** do tipo de atendimento (1-${session.dados.tecnicos.length}):`;
|
message += `Digite o **número** do técnico (1-${session.dados.tecnicos.length}):`;
|
||||||
|
|
||||||
await this.bot.sendMessage(session.chatId, message, { parse_mode: 'Markdown' });
|
await this.bot.sendMessage(session.chatId, message, { parse_mode: 'Markdown' });
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -744,7 +744,8 @@ class TopSappAPI {
|
|||||||
const session = await this.getValidSession(instance, credentials);
|
const session = await this.getValidSession(instance, credentials);
|
||||||
|
|
||||||
return await this.makeRequest('ObterFuncionarios', {
|
return await this.makeRequest('ObterFuncionarios', {
|
||||||
idUsuario: session.idUsuario || 1
|
idUsuario: session.idUsuario || 1,
|
||||||
|
desativado: false
|
||||||
}, instance, credentials);
|
}, instance, credentials);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user