Files
conversation-layer/whatsapp-router/src/index.ts
josedario87 0671cc9445
All checks were successful
Deploy conversation layer / deploy (push) Successful in 2m4s
renombrado nucleoClient y nucleoActions por whatsappCliente y whatsappActions
2025-06-06 23:06:59 -06:00

68 lines
2.0 KiB
TypeScript

import express from 'express';
import dotenv from 'dotenv';
import { registerConversationRoutes } from './routes/conversationActions';
import {
registerWebhookRoutes,
clearWebhooks,
registerWebhook,
waitForGateway,
WebhookConfig,
} from './webhook';
import whatsappActionsRouter from './routes/whatsappActions'; // New import
dotenv.config();
console.log(`Environment: ${process.env.NODE_ENV}`);
console.log(`Port: ${process.env.PORT}`);
console.log(`LLM Agent URL: ${process.env.LLM_AGENT_URL}`);
console.log(`Open WA URL: ${process.env.OPEN_WA_URL}`);
console.log(`Webhook URL: ${process.env.WEBHOOK_URL}`);
console.log(`Conversation Agent URL: ${process.env.CONVERSATION_AGENT_URL}`);
console.log(`Planilla Agent URL: ${process.env.PLANILLA_AGENT_URL}`);
console.log(`GEMINI API Key: ${process.env.GEMINI_API_KEY}`);
if (process.env.NODE_ENV === 'development') {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
}
if (
process.env.NODE_ENV !== 'development' &&
process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0'
) {
throw new Error('NODE_TLS_REJECT_UNAUTHORIZED está activado en producción. Abortando.');
}
const app = express();
app.use(express.json());
const port = Number(process.env.PORT) || 3001;
const agentUrl = process.env.LLM_AGENT_URL as string | undefined;
const openWaUrl = process.env.OPEN_WA_URL as string | undefined;
const config: WebhookConfig = {
API_URL: openWaUrl || '',
MAX_ATTEMPTS: parseInt(process.env.MAX_ATTEMPTS || '100', 10),
RETRY_MS: parseInt(process.env.RETRY_MS || '2000', 10),
};
registerConversationRoutes(app, openWaUrl);
registerWebhookRoutes(app, config, openWaUrl, agentUrl);
// Register new whatsappActions routes
app.use('/whatsapp', whatsappActionsRouter); // New line
app.listen(port, async () => {
console.log(`WhatsApp router listening on ${port}`);
try {
await waitForGateway(config);
await clearWebhooks(config);
await registerWebhook(config, port);
} catch (err: any) {
console.error('Webhook setup failed:', err.message);
}
});