manta_bot/index.js
Marcelo Sanchez c20986931a _
2026-01-19 15:52:08 -05:00

234 lines
9.3 KiB
JavaScript

// https://chatboot.manta.gob.ec/webhook
var funcion = require("./funtions.js");
var metodos = require("./metodos.js");
const express = require("express");
const app = express();
const { WebhookClient } = require("dialogflow-fulfillment");
app.get("/", function (req, res) {
res.send("Servicio de <b>DialogFlow MANTI</b> activo...... ❤️🧡💛💚💜🖤🙈 ");
});
app.post("/webhook", express.json(), function (req, res) {
const agent = new WebhookClient({ request: req, response: res });
// console.log("Dialogflow Request headers: " + JSON.stringify(req));
// console.log("Dialogflow Request headers: " + JSON.stringify(req.headers));
// console.log("Dialogflow Request body: " + JSON.stringify(req.body));
// console.log("Dialogflow Request body: " + JSON.stringify(agent));
/***** Contexto de inicio *****/
function DefauldAgent() {
return metodos.Fun_DefauldAgent(agent, req, res);
}
function WelcomeAgent() {
return metodos.Fun_WelcomeAgent(agent, req, res);
}
function SolicitarDatosAgent() {
return metodos.Fun_SolicitarDatosAgent(agent, req, res);
}
function ListarMenu() {
return metodos.Fun_ListarMenu(agent, req, res);
}
function FuncGracias() {
return metodos.Fun_ListarMenu(agent, req, res, 1);
}
function QueHacesFunction() {
return metodos.Fun_QueHacesFunction(agent, req, res);
}
function ComoEstasFunction() {
return metodos.Fun_QueHacesFunction(agent, req, res, 1);
}
/***** Cerrar session *****/
function SiCerrarSesionAgent() {
return metodos.Fun_CerrarSesionAgent(agent, req, res, 1);
}
function NoCerrarSesionAgent() {
return metodos.Fun_CerrarSesionAgent(agent, req, res, 0);
}
function ConfirmarCerrarSesionAgent() {
return metodos.Fun_ConfirmarCerrarSesionAgent(agent, req, res);
}
/***** Consultar Claves Catastrales *****/
function ConfirmarConsultarClavesCatastrales() {
return metodos.Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
function ConsultarClavesCatastrales() {
return metodos.Fun_ConsultarClavesCatastrales(agent, req, res);
}
function ConsultarOtrasClavesCatastrales() {
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 1);
}
function ConsultarPorClavesCatastrales() {
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 3);
}
function ConsultarPorClavesCatastrales2() {
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 4);
}
function ConsultarOtrasClavesCatastrales2() {
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 2);
}
function ConsultarCCAtras() {
return metodos.Fun_ConsultarCCAtras(agent, req, res);
}
/***** Prueba *****/
function prueba() {
return metodos.Fun_pruebas(agent, req, res);
}
/***** Validar documentos *****/
function ValidarDocumentos() {
return metodos.Fun_ValidarDocumentos(agent, req, res, 1);
}
function ValidarCodigobarras() {
return metodos.Fun_ValidarDocumentos(agent, req, res, 2);
}
/***** Mis comprobantes *****/
function MisComprobantesPago() {
return metodos.Func_MisComprobantesPago(agent, req, res, 1);
}
function TodosMisComprobantesPago() {
return metodos.Func_MisComprobantesPago(agent, req, res, 2);
}
function InicioMisComprobantesPago() {
return metodos.Func_MisComprobantesPago(agent, req, res, 3);
}
function FallbackComprobantes() {
return metodos.Func_FallbackComprobantes(agent, req, res);
}
//*******Mis tramites *******/
function MistramitesFallback() {
return metodos.Func_HistorialTramite(agent, req, res, 1);
}
function MistramitesPrevious() {
return metodos.Func_HistorialTramite(agent, req, res, 2);
}
function Mistramites() {
return metodos.Func_MisTramites(agent, req, res);
}
function HistorialTramite() {
return metodos.Func_HistorialTramite(agent, req, res);
}
/***** Info Tramites *****/
let tramer = ['Certificado_de_solvencia', 'Certificado_de_no_posees_bienes'];
function FallbackInfoTramites() {
return metodos.Func_FallbackInfoTramites(agent, req, res);
}
function AtrasInfoTramites() {
return metodos.Func_InformacionTramites(agent, req, res, 0);
}
function InformacionTramitesSolv() {
return metodos.Func_InformacionTramites(agent, req, res, tramer[0]);
}
function InformacionTramitesNoBienes() {
return metodos.Func_InformacionTramites(agent, req, res, tramer[1]);
}
/********** TRB **********/
function TasaRecoleccionBasura() { //menu principal
return metodos.Fun_ConfirmarTasaRecoleccionBasura(agent, req, res);
}
function MisValoresTasaRecoleccionBasura() { //menu principal
return metodos.Func_MiTasaRecoleccionBasura(agent, req, res);
}
function TRB_num_cedula_Recolectar() {
return metodos.Fun_ConsultarTRB(agent, req, res, 1);
}
function TRB_num_condigoRecolectar() {
return metodos.Fun_ConsultarTRB(agent, req, res, 3);
}
function TRB_num_cedula_Consultar() {
return metodos.Fun_ConsultarTRB(agent, req, res, 2);
}
function TRB_num_condigoConsultarr() {
return metodos.Fun_ConsultarTRB(agent, req, res, 4);
}
// function ConfirmarConsultarClavesCatastrales(){
// return metodos.Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
// }
let intentMap = new Map();
/***** Menu 1 - principal *****/
intentMap.set('0 - Solicitar datos', SolicitarDatosAgent);
intentMap.set('0 - Bienvenida', WelcomeAgent);
intentMap.set('Default Fallback Intent', DefauldAgent);
intentMap.set('0 - SI', ListarMenu);
intentMap.set('0 - No', FuncGracias);
intentMap.set('Contexto 1 - Que hacer', ListarMenu);
intentMap.set('Contexto 1 - Que haces', QueHacesFunction);
intentMap.set('Contexto 1 - Como estas', ComoEstasFunction);
/***** Menu 1 - Claves catastrales *****/
intentMap.set('0 - Bienvenida - Consultar-Predios', ConfirmarConsultarClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Mis predios', ConsultarClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Por catastral', ConsultarPorClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Por catastral - Clavecatstral', ConsultarPorClavesCatastrales2);
intentMap.set('0 - Bienvenida - Consultar-Predios - Otros Predios', ConsultarOtrasClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Otros Predios - Cedula', ConsultarOtrasClavesCatastrales2);
intentMap.set('0 - Bienvenida - Consultar-Predios - Atras', ConsultarCCAtras);
intentMap.set('0 - Bienvenida - Consultar-Predios - fallback', ConfirmarConsultarClavesCatastrales);
/***** Menu 1 - Cerrar sesion *****/
intentMap.set('0 - Bienvenida - Cerrar sesion', ConfirmarCerrarSesionAgent);
intentMap.set('0 - Bienvenida - Cerrar sesion - SI', SiCerrarSesionAgent);
intentMap.set('0 - Bienvenida - Cerrar sesion - NO', NoCerrarSesionAgent);
intentMap.set('0 - Bienvenida - Cerrar sesion - fallback', ConfirmarCerrarSesionAgent);
/***** Menu 1 - Validar Documentos *****/
intentMap.set('0 - Bienvenida - Validar Documentos', ValidarDocumentos);
intentMap.set('0 - Bienvenida - Validar Documentos - codigo', ValidarCodigobarras);
/***** Menu 1 - Mis comprobantes *****/
intentMap.set('0 - Bienvenida - Mis comprobantes de pago', MisComprobantesPago);
intentMap.set('0 - Bienvenida - Ver todos los comprobantes', TodosMisComprobantesPago);
intentMap.set('0 - Bienvenida - Mis comprobantes de pago - Menu Principal', InicioMisComprobantesPago);
intentMap.set('0 - Bienvenida - Mis comprobantes de pago - fallback', FallbackComprobantes);
//******** Menu 1 - Mis tramites **************/
intentMap.set('0 - Bienvenida - Mis Tramites', Mistramites);
intentMap.set('0 - Bienvenida - Mis Tramites - Historial', HistorialTramite);
intentMap.set('0 - Bienvenida - Mis Tramites - fallback', MistramitesFallback);
intentMap.set('0 - Bienvenida - Mis Tramites - previous', MistramitesPrevious);
//******** Menu 2 - Tasa de recoleccion de basura **************/
intentMap.set('0 - Bienvenida - TRB', TasaRecoleccionBasura);
intentMap.set('0 - Bienvenida - TRB - Mis valores', MisValoresTasaRecoleccionBasura);
intentMap.set('0 - Bienvenida - TRB - documento Requiere', TRB_num_cedula_Recolectar);
intentMap.set('0 - Bienvenida - TRB - documento Requiere - next', TRB_num_cedula_Consultar);
intentMap.set('0 - Bienvenida - TRB - cod requiere', TRB_num_condigoRecolectar);
intentMap.set('0 - Bienvenida - TRB - cod requiere - next', TRB_num_condigoConsultarr);
intentMap.set('0 - Bienvenida - TRB - previous', ConsultarCCAtras);
intentMap.set('0 - Bienvenida - TRB - fallback', TasaRecoleccionBasura);
/***** Menu 1 - Informacion de tramites *****/
intentMap.set('0 - Bienvenida - Inf Tram - fallback', FallbackInfoTramites);
intentMap.set('0 - Bienvenida - Inf Tram - Menu Principal', AtrasInfoTramites);
intentMap.set('0 - Bienvenida - Inf Tram', FallbackInfoTramites);
intentMap.set('0 - Bienvenida - Inf Tram - Solvencia', InformacionTramitesSolv);
intentMap.set('0 - Bienvenida - Inf Tram - NoBienes', InformacionTramitesNoBienes);
/************ PRUEBAS ************/
intentMap.set('prueba', prueba);
agent.handleRequest(intentMap);
});
let port = process.env.port || 3092;
app.listen(port, "0.0.0.0", () => {
console.log("Estamos ejecutando el servidor en el puerto " + port + ' exec: ngrok http 3092');
});