commit
This commit is contained in:
parent
64b122df05
commit
9bbe3e5d2f
102
funtions.js
102
funtions.js
@ -1,5 +1,6 @@
|
||||
const { error } = require('actions-on-google/dist/common');
|
||||
const axios= require('axios');
|
||||
const URLIC = 'https://sistemasic.manta.gob.ec/';
|
||||
const URLPC = 'http://mantaentusmanos.test/';
|
||||
// const URLPC = 'https://portalciudadano.manta.gob.ec/';
|
||||
const { WebhookClient } = require("dialogflow-fulfillment");
|
||||
@ -12,12 +13,21 @@ function conver_utf8(data) {
|
||||
return Buffer.from(data, 'base64').toString('ascii');
|
||||
}
|
||||
|
||||
function conver_name(data) {
|
||||
function conver_name(data, recep = null) {
|
||||
try {
|
||||
var porciones = data.split(' ');
|
||||
if(porciones.length >= 2 && porciones.length <= 4){
|
||||
var cadena = new String(data);
|
||||
var accion = Math.floor(Math.random() * (1 - 4)) + 4;
|
||||
console.log('publico'+recep);
|
||||
if(recep != null){ accion = recep; }
|
||||
if(accion == 1){
|
||||
cadena = porciones[(porciones.length -2)];
|
||||
}else if(accion == 2){
|
||||
cadena = porciones[(porciones.length -1)];
|
||||
}else{
|
||||
cadena = porciones[(porciones.length -2)]+ ' ' +porciones[(porciones.length -1)];
|
||||
}
|
||||
cadena = cadena.toLowerCase();
|
||||
return cadena.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
|
||||
}else{
|
||||
@ -43,16 +53,24 @@ function AxiosPOST(url, params){
|
||||
resolve(response.data);
|
||||
}).catch(function (error) {
|
||||
resolve({'estado':false, 'data':[], 'msg':error});
|
||||
}).then(function () {
|
||||
resolve({'estado':false, 'data':[], 'msg':'Lo siento, no logre terminar de procesar la solicitúd'});
|
||||
});
|
||||
});
|
||||
}
|
||||
function AxiosGET(url, params){
|
||||
console.log(URLPC+url);
|
||||
function AxiosGET(url, params, nweurl = null){
|
||||
if(nweurl == 'sistemasic'){
|
||||
url = URLIC + url;
|
||||
}else{
|
||||
url = URLPC + url;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.get(URLPC+url, params).then(function (response) {
|
||||
axios.get(url, params).then(function (response) {
|
||||
resolve(response.data);
|
||||
}).catch(function (error) {
|
||||
resolve({'estado':false, 'data':[], 'msg':error});
|
||||
}).then(function () {
|
||||
resolve({'estado':false, 'data':[], 'msg':'Lo siento, no logre terminar de procesar la solicitúd'});
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -130,13 +148,23 @@ async function ValidarComprobante(codigo){
|
||||
}
|
||||
|
||||
|
||||
async function ConsultaClaves(cedula){
|
||||
async function ConsultaClaves(cedula, chang = null){
|
||||
return new Promise((resolve, reject) => {
|
||||
var array = {'ok': false, 'data':[], 'msg':null};
|
||||
AxiosGET('consulta_predios_detalle/2/'+cedula+'?boot=true', {}).then(function (result) {
|
||||
var _ur = 'consulta_predios_detalle/2/'+cedula+'?boot=true';
|
||||
if(chang != null){
|
||||
var _ur = 'consulta_predios_detalle/1/'+cedula+'?boot=true&cc=1';
|
||||
}
|
||||
console.log(_ur);
|
||||
AxiosGET(_ur, {}).then(function (result) {
|
||||
if(result['ok'] && result['data_bot']['data'].length > 0){
|
||||
array['ok'] = true; array['data'] = result['data_bot']['data']; array['msg'] = 'Consulta exitosa';
|
||||
}else{ array['msg'] = 'usted no posee predios catastrales registrados en el GAD MANTA'; }
|
||||
}else{
|
||||
array['msg'] = 'el número de cédula '+cedula+' no posee predios catastrales registrados en el GAD MANTA';
|
||||
if(chang != null){
|
||||
array['msg'] = 'la clave catastral '+cedula+' no existe en los registros del GAD MANTA';
|
||||
}
|
||||
}
|
||||
resolve(array);
|
||||
}).catch(function (error) {
|
||||
array['msg'] = error;
|
||||
@ -162,6 +190,23 @@ async function ConsultaComprobantes(cedula, index){
|
||||
}
|
||||
|
||||
|
||||
async function ConsultaNoticias(){
|
||||
return new Promise((resolve, reject) => {
|
||||
var array = {'ok': false, 'data':[], 'msg':null};
|
||||
AxiosGET('consultarPublicaciones?boot=c', {}, 'sistemasic').then(function (result) {
|
||||
console.log(result)
|
||||
if(result['data'].length > 0){
|
||||
array['ok'] = true; array['data'] = result['data']; array['msg'] = 'Consulta exitosa';
|
||||
}else{ array['msg'] = 'No se encontró resultados'; }
|
||||
resolve(array);
|
||||
}).catch(function (error) {
|
||||
array['msg'] = error;
|
||||
resolve(array);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
async function OptInfoBot(key_inf){
|
||||
return new Promise((resolve, reject) => {
|
||||
var heders = {'info_key': key_inf};
|
||||
@ -178,6 +223,46 @@ async function OptInfoBot(key_inf){
|
||||
});
|
||||
}
|
||||
|
||||
//Consulta mis tramites solicitados
|
||||
async function GetMisTramites(key_cedula){
|
||||
return new Promise((resolve, reject) => {
|
||||
var heders = {};
|
||||
var array = {'ok': false, 'data':[], 'msg':null};
|
||||
AxiosGET('tramites/web_api_consulta_tramite?tipo=1&code=true&valor='+key_cedula, heders).then(function (result) {
|
||||
if(result['estado']){
|
||||
array['ok'] = true; array['data'] = result['data']; array['msg'] = result['msg'];
|
||||
}else{ array['msg'] = result['msg'] }
|
||||
resolve(array);
|
||||
}).catch(function (error) {
|
||||
array['msg'] = error;
|
||||
resolve(array);
|
||||
}).finally(function (find) {
|
||||
array['msg'] = 'Lo siento, no logre procesar su solicitúd';
|
||||
resolve(array);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//Consulta historial de tramites solicitados
|
||||
async function GetHistorialTramites(key_cedula, index){
|
||||
return new Promise((resolve, reject) => {
|
||||
var heders = {};
|
||||
var array = {'ok': false, 'data':[], 'tramite':null, 'msg':null};
|
||||
AxiosGET('tramites/resolver_index_tramite?tipo=1&code=true&index='+index+'&valor='+key_cedula, heders).then(function (result) {
|
||||
if(result['estado']){
|
||||
array['ok'] = true; array['data'] = result['data']; array['msg'] = result['msg']; array['tramite'] = result['tramite'];
|
||||
}else{ array['msg'] = result['msg'] }
|
||||
resolve(array);
|
||||
}).catch(function (error) {
|
||||
array['msg'] = error;
|
||||
resolve(array);
|
||||
}).finally(function (find) {
|
||||
array['msg'] = 'Lo siento, no logre procesar su solicitúd';
|
||||
resolve(array);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -198,5 +283,8 @@ module.exports = {
|
||||
"ValidarComprobante": ValidarComprobante,
|
||||
"ConsultaComprobantes": ConsultaComprobantes,
|
||||
"OptInfoBot": OptInfoBot,
|
||||
"ConsultaNoticias": ConsultaNoticias,
|
||||
"GetMisTramites": GetMisTramites,
|
||||
"GetHistorialTramites": GetHistorialTramites,
|
||||
"ConsultaClaves": ConsultaClaves
|
||||
}
|
||||
98
index.js
98
index.js
@ -11,12 +11,13 @@ app.get("/", function (req, res) {
|
||||
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));
|
||||
// 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));
|
||||
// console.log("Dialogflow Request body: " + JSON.stringify(agent));
|
||||
|
||||
//Inicio
|
||||
|
||||
/***** Contexto de inicio *****/
|
||||
function DefauldAgent(){
|
||||
return metodos.Fun_DefauldAgent(agent, req, res);
|
||||
}
|
||||
@ -29,10 +30,17 @@ app.post("/webhook", express.json(), function (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
|
||||
/***** Cerrar session *****/
|
||||
function SiCerrarSesionAgent(){
|
||||
return metodos.Fun_CerrarSesionAgent(agent, req, res, 1);
|
||||
}
|
||||
@ -43,9 +51,7 @@ app.post("/webhook", express.json(), function (req, res) {
|
||||
return metodos.Fun_ConfirmarCerrarSesionAgent(agent, req, res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Consultar Claves Catastrales
|
||||
/***** Consultar Claves Catastrales *****/
|
||||
function ConfirmarConsultarClavesCatastrales(){
|
||||
return metodos.Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
@ -55,6 +61,12 @@ app.post("/webhook", express.json(), function (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);
|
||||
}
|
||||
@ -62,15 +74,12 @@ app.post("/webhook", express.json(), function (req, res) {
|
||||
return metodos.Fun_ConsultarCCAtras(agent, req, res);
|
||||
}
|
||||
|
||||
|
||||
//Prueba
|
||||
/***** Prueba *****/
|
||||
function prueba(){
|
||||
return metodos.Fun_pruebas(agent, req, res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Validar documentos
|
||||
/***** Validar documentos *****/
|
||||
function ValidarDocumentos(){
|
||||
return metodos.Fun_ValidarDocumentos(agent, req, res, 1);
|
||||
}
|
||||
@ -78,8 +87,7 @@ app.post("/webhook", express.json(), function (req, res) {
|
||||
return metodos.Fun_ValidarDocumentos(agent, req, res, 2);
|
||||
}
|
||||
|
||||
|
||||
//Mis comprobantes
|
||||
/***** Mis comprobantes *****/
|
||||
function MisComprobantesPago(){
|
||||
return metodos.Func_MisComprobantesPago(agent, req, res, 1);
|
||||
}
|
||||
@ -94,62 +102,90 @@ app.post("/webhook", express.json(), function (req, res) {
|
||||
}
|
||||
|
||||
|
||||
//Info Tramites
|
||||
let tramer = ['solvencia_key'];
|
||||
//*******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 AtrasInfoTramites(){
|
||||
return metodos.Func_InformacionTramites(agent, req, res, 0);
|
||||
function InformacionTramitesNoBienes(){
|
||||
return metodos.Func_InformacionTramites(agent, req, res, tramer[1]);
|
||||
}
|
||||
|
||||
|
||||
let intentMap = new Map();
|
||||
|
||||
//Menu 1 - principal
|
||||
/***** 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('M1-Consulta-Predios', ConsultaPredios);
|
||||
/***** 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('M0 - Cerrar sesion', ConfirmarCerrarSesionAgent);
|
||||
/***** 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 Documentosany
|
||||
/***** Menu 1 - Validar Documentos *****/
|
||||
intentMap.set('0 - Bienvenida - Validar Documentos', ValidarDocumentos);
|
||||
intentMap.set('0 - Bienvenida - Validar Documentos - codigo', ValidarCodigobarras);
|
||||
|
||||
// Menu 1 - Mis comprobantes
|
||||
/***** 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 - Informacion de tramites
|
||||
|
||||
//******** 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 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);
|
||||
|
||||
152
interacciones.js
152
interacciones.js
@ -1,32 +1,45 @@
|
||||
|
||||
|
||||
function mensaje(name, username = null) {
|
||||
function mensaje(name, username = null, massager = null) {
|
||||
var jsom_interaciones = ['Es un placer poder ayudarle.....'];
|
||||
var menu_context = "\n1. Consultar predios"+
|
||||
"\n2. Validar documentos digitales"+
|
||||
"\n3. Mis comprobantes de pago"+
|
||||
"\n4. Mis trámites"+
|
||||
"\n5. Información sobre trámites"+
|
||||
"\n0. Cerrar sesión"+
|
||||
"\n\n -Ingrese el número de la opción que desee.";
|
||||
switch (name) {
|
||||
case 'sol_cedula':
|
||||
jsom_interaciones = [
|
||||
'Antes de continuar es necesario que nos ayúde con su número de cédula o RUC 🙏',
|
||||
'Ayude con su número de cédula o RUC para poder continuar 🙏',
|
||||
'Estoy para ayudarle pero primero necesito su número de cédula o RUC 🙏'
|
||||
'Para brindarle un mejor servicio es necesario que ingrese su número de cédula o RUC 🤓',
|
||||
'Antes de continuar es necesario que ingrese su número de cédula o RUC 🤓',
|
||||
'Ayude con su número de cédula o RUC para poder continuar 🤓',
|
||||
'Necesito su número de cédula o RUC para brindarle un mejor servicio 🤓'
|
||||
];
|
||||
break;
|
||||
case 'sol_data_cedula':
|
||||
jsom_interaciones = [
|
||||
'Por favor ingrese el número de cédula del propietario(a)',
|
||||
'Ayudeme con el número el número de cédula del propietario(a)'
|
||||
'Ayúdeme con el número de cédula del propietario(a)'
|
||||
];
|
||||
break;
|
||||
case 'sol_data_clave_catastral':
|
||||
jsom_interaciones = [
|
||||
'Por favor ingrese con el número de la clave catastral',
|
||||
'Ayúdeme con la clave catastral del propietario(a).'
|
||||
];
|
||||
break;
|
||||
case 'sol_data_codigo':
|
||||
jsom_interaciones = [
|
||||
'Por favor ingrese el código de barras del documento',
|
||||
'Ayudeme con el número el código de barras del documento'
|
||||
'Ayúdeme con el número el código de barras del documento'
|
||||
];
|
||||
break;
|
||||
case 'retorno_inicio':
|
||||
jsom_interaciones = [
|
||||
'¿Hay algo mas en lo que le pueda ayudar?',
|
||||
'¿Que mas puedo hacer por usted?',
|
||||
'¿Puedo ayudarle en algo mas?'
|
||||
'¿Hay algo mas en lo que le pueda ayudar?\n'+menu_context,
|
||||
'¿Que mas puedo hacer por usted?\n'+menu_context,
|
||||
'¿Puedo ayudarle en algo mas?\n'+menu_context
|
||||
];
|
||||
break;
|
||||
case 'recuerde':
|
||||
@ -40,52 +53,55 @@ function mensaje(name, username = null) {
|
||||
case 'bienvenida':
|
||||
if(username){
|
||||
jsom_interaciones = [
|
||||
'Hola, '+username+' 👋',
|
||||
'Hola, '+username+' soy MantaBot su asistente virtual 👋🥰',
|
||||
'Hola '+username,
|
||||
'Hola '+username+', soy MantaBot su asistente virtual 👋🥰',
|
||||
'Qué tal '+username+' 🙂',
|
||||
'Hola '+username+' soy MantaBot 😎',
|
||||
mostrarSaludo()+' '+username+' 🙂',
|
||||
'Hola '+username+', soy MantaBot 😎',
|
||||
mostrarSaludo()+ ' soy MantaBot 😎',
|
||||
'¿Qué tal? '+username+' 😎'
|
||||
];
|
||||
}else{
|
||||
jsom_interaciones = [
|
||||
'Soy MantaBot su asistente virtual 🤖',
|
||||
'Hola, soy MantaBot su asistente virtual 🤖',
|
||||
'Qué tal, soy MantaBot su asistente virtual 🤖',
|
||||
mostrarSaludo()+', soy MantaBot su asistente virtual 🤖',
|
||||
'Hola soy MantaBot, su asistente virtual 🤖',
|
||||
'¿Qué tal? soy MantaBot su asistente virtual 🤖'
|
||||
];
|
||||
}
|
||||
break;
|
||||
case 'menu_1':
|
||||
// var menu = "\n1. Consultar predios \n2. Validar documentos digitales \n0. Cerrar sessión";
|
||||
var menu = "\n1. Consultar predios \n2. Validar documentos digitales \n3. Mis comprobantes de pago\n"+
|
||||
"4. Información sobre trámites\n0. Cerrar sessión\n";
|
||||
jsom_interaciones = [
|
||||
'Recuerde que puedo ayudarle en cosas como:\n' + menu,
|
||||
'Puedo ayudarle ahora con:\n' + menu,
|
||||
'Podemos continuar con:\n' + menu,
|
||||
'Puedo ofrecerle:\n' + menu
|
||||
'Hola, le invito a conocer nuestro *menú de opciones:*' + menu_context
|
||||
];
|
||||
break;
|
||||
case 'consulta_clave':
|
||||
var menu = "\n1. Consultar mis predios \n2. Consultar otros predios \n0. Atras";
|
||||
case 'menu_dirigido':
|
||||
jsom_interaciones = [
|
||||
'¿Que acción desea realizar?:\n' + menu,
|
||||
'Hola '+username+', que tal si revisamos el *menú de opciones:*' + menu_context
|
||||
];
|
||||
break;
|
||||
case 'menu_hueso':
|
||||
jsom_interaciones = [menu_context];
|
||||
break;
|
||||
case 'consulta_clave':
|
||||
var menu = "\n1. Consultar mis predios \n2. Consultar por número de cédula \n3. Consultar por clave catastral \n0. Atras";
|
||||
jsom_interaciones = [
|
||||
'¿Que acción desea realizar?\n' + menu + "\n\n -Ingrese el número de la opción que desee.",
|
||||
];
|
||||
break;
|
||||
case 'info_tramites':
|
||||
var menu = "1. Certificado de solvencia \n0. Ir al menu anterior";
|
||||
var menu = "1. Certificado de solvencia \n2. Certificado de no poseer bienes \n0. Ir al menú anterior";
|
||||
jsom_interaciones = [
|
||||
'Envíe el número de la opción que desee:\n\n' + menu,
|
||||
'Envíe el número de la opción que desee:\n\n' + menu +"\n\n -Ingrese el número de la opción que desee.",
|
||||
];
|
||||
break;
|
||||
case 'defauld':
|
||||
var username = username != null ? username : '';
|
||||
jsom_interaciones = [
|
||||
'Disculpa '+username+' no logré entenderte 😔 Aún estoy aprendiendo. 🤓 ',
|
||||
'Lo siento '+username+' 💔 no comprendí su pregunta. Aún estoy aprendiendo. 🤓',
|
||||
'Mil disculpas '+username+', 😓 no logre entender su pregunta. Aún estoy aprendiendo. 🤓',
|
||||
'Aprendo cada día, pero no logre entender su pregunta '+username+' 🤓'
|
||||
'Disculpa '+username+' no logré entender su pregunta😔 \nAún estoy aprendiendo🎓📚🤓\n\nQue tal si revisamos el *menú de opciones:*' + menu_context,
|
||||
'Lo siento '+username+' 💔 no comprendí su pregunta \nAún estoy aprendiendo🎓📚🤓\n\nQue tal si revisamos el *menú de opciones:*' + menu_context,
|
||||
'Mil disculpas '+username+' 😓 no logre deducir su pregunta \nAún estoy aprendiendo 🎓📚🤓\n\nLe mostrare el *menú de opciones:*' + menu_context,
|
||||
username+' aprendo cada día mas 🎓📚🤓 pero no logre entender su pregunta 😓\n\nLe mostrare el *menú de opciones:*' + menu_context,
|
||||
];
|
||||
break;
|
||||
case 'afirmacion':
|
||||
@ -96,10 +112,84 @@ function mensaje(name, username = null) {
|
||||
'Perfecto...👌',
|
||||
];
|
||||
break;
|
||||
case 'bienvenida_su':
|
||||
jsom_interaciones = [
|
||||
mostrarSaludo()+' '+username+
|
||||
', bienvenido(a) a los servicios de asistencia virtual del GAD MANTA 🏣\n'+
|
||||
'Soy *MANTABOT*🤖 y seré su asitente virtual.\n\n'+
|
||||
'Antes de empezar le invito a descargar nuestra aplicación movil oficial *MANTAPP* dando clic en:\nhttps://portalciudadano.manta.gob.ec/c?mantapp'+
|
||||
'\n\nA continuación, le presento nuestro *menú de opciones:*'+menu_context
|
||||
];
|
||||
break;
|
||||
case 'despedida':
|
||||
jsom_interaciones = [
|
||||
'Esta bíen que tenga '+mostrarSaludo(1)+', espero vuelva pronto...👋\n'+
|
||||
'Si desea volver a iniciar sesión por favor ingrese su número'+
|
||||
' de cédula o RUC 🤓'
|
||||
];
|
||||
break;
|
||||
case 'despedida_alt':
|
||||
jsom_interaciones = [
|
||||
'Esta bíen '+username+', fue un placer ayudarle. 😬👏\nQue tenga '+mostrarSaludo(1)+'. 😇',
|
||||
'Esta bíen '+username+', es un gusto poder ayudarle, 😬👏 por favor vuelva pronto 👋😇',
|
||||
'Okey '+username+', estoy para ayudarle. 😬👏\nQue tenga '+mostrarSaludo(1)+'. 😇',
|
||||
];
|
||||
break;
|
||||
case 'haceres_1':
|
||||
jsom_interaciones = [
|
||||
'Estaba revisando Facebook y adivina?📱🤭😬 \n\n'+
|
||||
'Me pareció muy interesante una publicación de Municipio de Manta titulada:\n'+username
|
||||
];
|
||||
break;
|
||||
case 'haceres_2':
|
||||
var cont = 'revisando Facebook y adivina?📱🤭😬 \n\n'+
|
||||
'Me pareció muy interesante una publicación de Municipio de Manta titulada:\n'+massager;
|
||||
jsom_interaciones = [
|
||||
'Estoy super bien ' + username + ', gracias por preguntar.\nJusto ahora estaba '+cont,
|
||||
username + ' estoy de maravilla, gracias por preguntar.\nPrecisamente ahora estaba '+cont,
|
||||
username + ' es '+mostrarSaludo(1)+' asi que estoy super feliz, gracias por preguntar.\nHace un rato estaba '+cont,
|
||||
];
|
||||
case 'mis_cer92':
|
||||
jsom_interaciones = [' - Ingrese el #número indicado al inicio del nombre del trámite \n- Ingrese 0 para volver al menú principal'];
|
||||
break;
|
||||
|
||||
}
|
||||
return jsom_interaciones[Math.floor(Math.random() * jsom_interaciones.length)]
|
||||
}
|
||||
|
||||
function mostrarSaludo(vari = null){
|
||||
fecha = new Date();
|
||||
hora = fecha.getHours();
|
||||
if(hora >= 0 && hora < 12){
|
||||
texto = "Buenos días";
|
||||
if(vari == 1){
|
||||
texto = 'un buen día';
|
||||
}
|
||||
if(vari == 2){
|
||||
texto = 'día';
|
||||
}
|
||||
}
|
||||
if(hora >= 12 && hora < 18){
|
||||
texto = "Buenas tardes";
|
||||
if(vari == 1){
|
||||
texto = 'una buena tarde';
|
||||
}
|
||||
if(vari == 2){
|
||||
texto = 'tarde';
|
||||
}
|
||||
}
|
||||
if(hora >= 18 && hora < 24){
|
||||
texto = "Buenas noches";
|
||||
if(vari == 1){
|
||||
texto = 'una buena noche';
|
||||
}
|
||||
if(vari == 2){
|
||||
texto = 'noche';
|
||||
}
|
||||
}
|
||||
return texto;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
658
metodos.js
658
metodos.js
@ -1,158 +1,247 @@
|
||||
var funcion = require("./funtions.js");
|
||||
var dialog = require("./interacciones.js");
|
||||
const {Card, Image} = require('dialogflow-fulfillment');
|
||||
const {
|
||||
Card,
|
||||
Image
|
||||
} = require('dialogflow-fulfillment');
|
||||
|
||||
async function Fun_DefauldAgent(agent, req, res){
|
||||
async function Fun_DefauldAgent(agent, req, res) {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name) ));
|
||||
return agent.add(dialog.mensaje('menu_1'));
|
||||
}else{
|
||||
if (data_context) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name)));
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function Fun_SolicitarDatosAgent(agent, req, res){
|
||||
async function Fun_SolicitarDatosAgent(agent, req, res) {
|
||||
try {
|
||||
const sessionId = req.body.session.split("/").reverse()[0];
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if(data_context != null && data_context != "" ){
|
||||
if (data_context) {
|
||||
var megg = null;
|
||||
if (data_context != null && data_context != "") {
|
||||
let sesion = await funcion.RegistrarSession(sessionId, data_context.cedula);
|
||||
if(sesion['ok'] == true && sesion['data']['name'] != null){
|
||||
if (sesion['ok'] == true && sesion['data']['name'] != null) {
|
||||
console.log('sesion registrada en la bd')
|
||||
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula: sesion['data']['cedula'], name: sesion['data']['name'] } });
|
||||
}else{
|
||||
agent.context.set({name:'data_user_context', lifespan: 0 });
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan: 1 });
|
||||
sesion['msg'] != null ? agent.add(sesion['msg'] ) : null;
|
||||
agent.context.set({
|
||||
name: 'data_user_context',
|
||||
lifespan: 5,
|
||||
parameters: {
|
||||
cedula: sesion['data']['cedula'],
|
||||
name: sesion['data']['name']
|
||||
}
|
||||
});
|
||||
megg = dialog.mensaje('bienvenida_su', funcion.conver_name(sesion['data']['name'], 3));
|
||||
} else {
|
||||
console.log('demoda')
|
||||
agent.context.set({
|
||||
name: 'data_user_context',
|
||||
lifespan: 0
|
||||
});
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
sesion['msg'] != null ? agent.add(sesion['msg']) : null;
|
||||
return agent.add(dialog.mensaje('sol_cedula'));
|
||||
}
|
||||
}
|
||||
return Fun_WelcomeAgent(agent, req, res, megg);
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}else{
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
async function Fun_WelcomeAgent(agent, req, res){
|
||||
async function Fun_WelcomeAgent(agent, req, res, mensage = null) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if (data_context) {
|
||||
console.log('contexto existe........');
|
||||
agent.add(dialog.mensaje('bienvenida', data_context.name != null ? funcion.conver_name(data_context.name) : data_context.cedula));
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
return agent.add(dialog.mensaje('menu_1'));
|
||||
}else{
|
||||
// agent.add(dialog.mensaje('bienvenida', data_context.name != null ? funcion.conver_name(data_context.name) : data_context.cedula));
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
var rem_mens = dialog.mensaje('menu_dirigido', funcion.conver_name(data_context.name));
|
||||
if(mensage != null){
|
||||
rem_mens = mensage;
|
||||
}
|
||||
return agent.add(rem_mens);
|
||||
} else {
|
||||
console.log('NO existe contexto.......');
|
||||
const sessionId = req.body.session.split("/").reverse()[0];
|
||||
let legion = await funcion.ValidarSession(sessionId);
|
||||
if(legion['ok'] == true && legion['data']['name'] != null){
|
||||
if (legion['ok'] == true && legion['data']['name'] != null) {
|
||||
console.log('sesion existe en la bd')
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula: legion['data']['cedula'], name: legion['data']['name'] } });
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
agent.context.set({
|
||||
name: 'data_user_context',
|
||||
lifespan: 5,
|
||||
parameters: {
|
||||
cedula: legion['data']['cedula'],
|
||||
name: legion['data']['name']
|
||||
}
|
||||
});
|
||||
agent.add(dialog.mensaje('bienvenida', legion['data']['name'] != null ? funcion.conver_name(legion['data']['name']) : d_text.cedula));
|
||||
return agent.add(dialog.mensaje('menu_1'));
|
||||
}else{
|
||||
agent.context.set({name:'sol_datos_usuario', lifespan:1});
|
||||
agent.add(dialog.mensaje('bienvenida'));
|
||||
return agent.add(dialog.mensaje('sol_cedula'));
|
||||
} else {
|
||||
agent.context.set({
|
||||
name: 'sol_datos_usuario',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('bienvenida')+'\n'+dialog.mensaje('sol_cedula'));
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function ValidateDataUserContext(agent){
|
||||
function ValidateDataUserContext(agent) {
|
||||
try {
|
||||
return new Promise((resolve, reject) => {
|
||||
try{
|
||||
try {
|
||||
var Contx = null;
|
||||
Contx = agent.context.get('data_user_context');
|
||||
if (Contx == null || Contx == NaN || Contx == undefined){
|
||||
Contx = ExistParamtContext(agent,'data_user_context');
|
||||
if (Contx == null || Contx == NaN || Contx == undefined) {
|
||||
Contx = ExistParamtContext(agent, 'data_user_context');
|
||||
}
|
||||
if (Contx != null && Contx != NaN && Contx != undefined){
|
||||
if(Contx.parameters.cedula != null && Contx.parameters.cedula != "" ){
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:0});
|
||||
let _cedu = Contx.parameters.cedula; let _nam = Contx.parameters.name;
|
||||
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula:_cedu, name:_nam } });
|
||||
resolve({ cedula:_cedu, name:_nam });
|
||||
}else{
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
if (Contx != null && Contx != NaN && Contx != undefined) {
|
||||
if (Contx.parameters.cedula != null && Contx.parameters.cedula != "") {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 0
|
||||
});
|
||||
let _cedu = Contx.parameters.cedula;
|
||||
let _nam = Contx.parameters.name;
|
||||
agent.context.set({
|
||||
name: 'data_user_context',
|
||||
lifespan: 5,
|
||||
parameters: {
|
||||
cedula: _cedu,
|
||||
name: _nam
|
||||
}
|
||||
});
|
||||
resolve({
|
||||
cedula: _cedu,
|
||||
name: _nam
|
||||
});
|
||||
} else {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
resolve(false);
|
||||
}
|
||||
}else{
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
} else {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
resolve(false);
|
||||
}
|
||||
}catch (error) {
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
resolve(false);
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
function ExistParamtContext(agent, pamameter){
|
||||
function ExistParamtContext(agent, pamameter) {
|
||||
var data = null;
|
||||
agent.contexts.forEach(element => {
|
||||
if(element.name == pamameter){
|
||||
if (element.name == pamameter) {
|
||||
data = element;
|
||||
}
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
async function Fun_CerrarSesionAgent(agent, req, res, accion){
|
||||
if(accion == 1){
|
||||
async function Fun_CerrarSesionAgent(agent, req, res, accion) {
|
||||
try {
|
||||
if (accion == 1) {
|
||||
console.log('cerrando sesion...');
|
||||
const sessionId = req.body.session.split("/").reverse()[0];
|
||||
let legion = await funcion.CerrarSession(sessionId);
|
||||
if(legion['ok'] == true){
|
||||
agent.add(legion['msg']);
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
agent.context.set({name:'data_user_context', lifespan: 0, parameters:{}});
|
||||
agent.add(dialog.mensaje('bienvenida'));
|
||||
return agent.add(dialog.mensaje('sol_cedula'));
|
||||
}else{
|
||||
if (legion['ok'] == true) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
agent.context.set({
|
||||
name: 'sol_datos_usuario',
|
||||
lifespan: 1
|
||||
});
|
||||
agent.context.set({
|
||||
name: 'data_user_context',
|
||||
lifespan: 0,
|
||||
parameters: {}
|
||||
});
|
||||
return agent.add(dialog.mensaje('despedida'));
|
||||
} else {
|
||||
return agent.add(legion['msg']);
|
||||
}
|
||||
}
|
||||
if(accion == 0){
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
if (accion == 0) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
agent.add(dialog.mensaje('afirmacion'));
|
||||
return agent.add(dialog.mensaje('menu_1'));
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async function Fun_ConfirmarCerrarSesionAgent(agent, req, res){
|
||||
async function Fun_ConfirmarCerrarSesionAgent(agent, req, res) {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
// agent.context.set({name:'cerrar_sesion', lifespan:1});
|
||||
agent.context.set({name:'0-Bienvenida-Cerrarsesion-followup', lifespan:1});
|
||||
return agent.add('¿Esta de acuerdo en cerrar la sesión? \n1. SI \n2. NO');
|
||||
}else{
|
||||
if (data_context) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-Cerrarsesion-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add('¿Esta de acuerdo en cerrar la sesión? \n1. SI \n2. NO\n\n -Ingrese el número de la opción que desee.');
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
}
|
||||
|
||||
async function Func_InformacionTramites(agent, req, res, key_example){
|
||||
console.log(key_example);
|
||||
async function Func_InformacionTramites(agent, req, res, key_example) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if(key_example == 0){
|
||||
if (data_context) {
|
||||
if (key_example == 0) {
|
||||
return Fun_ConsultarCCAtras(agent, req, res);
|
||||
}
|
||||
|
||||
let legion = await funcion.OptInfoBot(key_example);
|
||||
if(legion['ok'] == true){
|
||||
console.log(1)
|
||||
console.log(1)
|
||||
console.log(1)
|
||||
var msger = '*'+legion['data']['data_key']+'*\n\n';
|
||||
var example = legion['data']['data'].split('|');
|
||||
if(example.length == 0){
|
||||
console.log(legion);
|
||||
if (legion['ok'] == true) {
|
||||
var msger = '*' + legion['data']['data_key'] + '*\n\n';
|
||||
var example = legion['data']['data'];
|
||||
if (example.length == 0) {
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
example.forEach(element => {
|
||||
@ -161,262 +250,448 @@ async function Func_InformacionTramites(agent, req, res, key_example){
|
||||
agent.add(msger);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
|
||||
}else{
|
||||
agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
|
||||
} else {
|
||||
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
console-log(error);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function Fun_pruebas(agent, req, res){
|
||||
//Consultar todos mis trámites solicitados en Portal ciudadano
|
||||
async function Func_MisTramites(agent, req, res, key_example = null) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
let legion = await funcion.OptInfoBot('solvencia_key');
|
||||
console.log(legion);
|
||||
if(legion['ok'] == true){
|
||||
console.log(1)
|
||||
console.log(1)
|
||||
console.log(1)
|
||||
var msger = '*'+legion['data']['data_key']+'*\n\n';
|
||||
var example = legion['data']['data'].split('|');
|
||||
if(example.length == 0){
|
||||
if (data_context) {
|
||||
if (key_example == 0) {
|
||||
return Fun_ConsultarCCAtras(agent, req, res);
|
||||
}
|
||||
let legion = await funcion.GetMisTramites(data_context.cedula);
|
||||
if (legion['ok'] == true) {
|
||||
var msger = '*Listado de trámites solicitados*\n\n';
|
||||
var example = legion['data'];
|
||||
if (example.length == 0) {
|
||||
agent.add('Lo siento, no encontré ningún trámite solicitado a su nombre.');
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
example.forEach(element => {
|
||||
msger = msger + element + '\n';
|
||||
example.forEach((element, index) => {
|
||||
msger = msger+'*#'+(index+1) +'* - ' + element['nombresolicitud']+
|
||||
'\nFecha de solicitúd: '+element['fecha_solicitud'];
|
||||
|
||||
if(element['state_documento'] != null ){
|
||||
msger = msger+'\nFecha de vencimiento: '+element['fecha_vencimiento']
|
||||
+'\nEstado: '+element['state_documento'];
|
||||
}else{
|
||||
msger = msger+'\nEstado: '+element['estado'];
|
||||
if(element['url2'] != null){
|
||||
msger = msger+'\nFecha de vencimiento: '+element['fecha_vencimiento']+
|
||||
'\nVer documento: '+element['url2'];
|
||||
}
|
||||
}
|
||||
msger = msger +'\n\n'
|
||||
});
|
||||
|
||||
agent.add(msger);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
|
||||
}else{
|
||||
agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-MisTramites-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('mis_cer92'));
|
||||
} else {
|
||||
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
console-log(error);
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
//Mis tramites - Defauld
|
||||
//Historial de mis traites
|
||||
async function Func_HistorialTramite(agent, req, res, key_example = null) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if (data_context) {
|
||||
if(key_example == 2){
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
if(key_example == 1){
|
||||
agent.context.set({ name: '0-Bienvenida-MisTramites-followup', lifespan: 1 });
|
||||
return agent.add(dialog.mensaje('mis_cer92'));
|
||||
}
|
||||
var Contx = agent.context.get('tramite_cer_historial');
|
||||
if (Contx == null || Contx == NaN || Contx == undefined) {
|
||||
Contx = ExistParamtContext(agent, 'tramite_cer_historial');
|
||||
}
|
||||
if (Contx != null && Contx != NaN && Contx != undefined) {
|
||||
if (Contx.parameters.numero_tramite != null && Contx.parameters.numero_tramite != "") {
|
||||
let legion = await funcion.GetHistorialTramites(data_context.cedula, Contx.parameters.numero_tramite);
|
||||
if (legion['ok'] == true) {
|
||||
var msger = '';
|
||||
if(legion['tramite'] != undefined){
|
||||
msger = msger + '*HISTORIAL - '+legion['tramite']+'*';
|
||||
var example = legion['data'];4
|
||||
if (example.length == 0) {
|
||||
agent.add(msger +'\nLo siento, no encontré ningúna información del trámite solicitado.');
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
example.forEach((element, index) => {
|
||||
msger = msger+'\n\nFecha: '+element['registro']+
|
||||
'\nEstado: '+ element['estado'];
|
||||
if(element['observacion']){
|
||||
msger = msger+'\nObservación: '+element['observacion'];
|
||||
}
|
||||
});
|
||||
}else{
|
||||
agent.add(legion['msg']);
|
||||
return Func_HistorialTramite(agent, req, res, 1);
|
||||
}
|
||||
}
|
||||
agent.add(msger);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
}
|
||||
agent.context.set({ name: '0-Bienvenida-MisTramites-followup', lifespan: 1 });
|
||||
return agent.add(dialog.mensaje('mis_cer92'));
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function Fun_ConsultarCCAtras(agent, req, res){
|
||||
async function Fun_QueHacesFunction(agent, req, res, vari = null) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
if (data_context) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
let legion = await funcion.ConsultaNoticias();
|
||||
if (legion['ok'] == true) {
|
||||
var szar = Math.floor(Math.random() * legion['data'].length);
|
||||
var mesge = dialog.mensaje('haceres_1', '*'+legion['data'][szar]['titulo']+'*\nQue tal si revisas un poco: 🧐🙃\n'+legion['data'][szar]['link_facebook']);
|
||||
if(vari == 1){
|
||||
mesge = dialog.mensaje('haceres_2', funcion.conver_name(data_context.name), '*'+legion['data'][szar]['titulo']+'*\nQue tal si revisas un poco:🧐🙃\n'+legion['data'][szar]['link_facebook']);
|
||||
}
|
||||
return agent.add(mesge);
|
||||
}else{
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
async function Fun_pruebas(agent, req, res) {
|
||||
|
||||
return agent.add('hola como estras');
|
||||
try {
|
||||
return Fun_QueHacesFunction(agent, req, req, 1);
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function Fun_ConsultarCCAtras(agent, req, res) {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if (data_context) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('menu_1'));
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function Fun_ConfirmarConsultarClavesCatastrales(agent, req, res){
|
||||
async function Fun_ConfirmarConsultarClavesCatastrales(agent, req, res) {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
agent.context.set({name:'0-Bienvenida-Consultar-Predios-followup', lifespan:1});
|
||||
if (data_context) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-Consultar-Predios-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('consulta_clave'));
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function Fun_ConsultaPredios(agent, req, res){
|
||||
async function Fun_ConsultaPredios(agent, req, res) {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
agent.context.set({name:'nuevo_context', lifespan:1});
|
||||
if (data_context) {
|
||||
agent.context.set({
|
||||
name: 'nuevo_context',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('consulta_clave'));
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
}
|
||||
|
||||
async function Fun_RetornarAlinicio(agent, req, res,name){
|
||||
agent.context.set({name:'inicial_context', lifespan:1});
|
||||
return agent.add(name +', '+dialog.mensaje('retorno_inicio'));
|
||||
async function Fun_RetornarAlinicio(agent, req, res, name) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
agent.context.set({
|
||||
name: 'inicial_context',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('retorno_inicio'));
|
||||
}
|
||||
|
||||
async function Fun_ListarMenu(agent, req, res){
|
||||
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
|
||||
async function Fun_ListarMenu(agent, req, res, inva = null) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if (data_context) {
|
||||
console.log(data_context);
|
||||
if(inva == 1){
|
||||
return agent.add(dialog.mensaje('despedida_alt', funcion.conver_name(data_context.name)));
|
||||
}
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('menu_1'));
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
async function Fun_ConsultarOtrasClavesCatastrales(agent, req, res, tipo){
|
||||
async function Fun_ConsultarOtrasClavesCatastrales(agent, req, res, tipo) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if(tipo == 1){
|
||||
if (data_context) {
|
||||
if (tipo == 1) {
|
||||
return agent.add(dialog.mensaje('sol_data_cedula'));
|
||||
}else if(tipo == 2){
|
||||
} else if (tipo == 2) {
|
||||
var Contx = agent.context.get('data_predios');
|
||||
if (Contx == null || Contx == NaN || Contx == undefined){ Contx = ExistParamtContext(agent,'data_predios'); }
|
||||
if (Contx != null && Contx != NaN && Contx != undefined){
|
||||
if(Contx.parameters.cedula_otro != null && Contx.parameters.cedula_otro != "" ){
|
||||
return Fun_ConsultarClavesCatastrales(agent, req, res, Contx.parameters.cedula_otro);
|
||||
if (Contx == null || Contx == NaN || Contx == undefined) {
|
||||
Contx = ExistParamtContext(agent, 'data_predios');
|
||||
}
|
||||
if (Contx != null && Contx != NaN && Contx != undefined) {
|
||||
if (Contx.parameters.cedula_otro != null && Contx.parameters.cedula_otro != "") {
|
||||
return Fun_ConsultarClavesCatastrales(agent, req, res, Contx.parameters.cedula_otro);
|
||||
}else{
|
||||
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
} else {
|
||||
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
}else if(tipo == 3){
|
||||
return agent.add(dialog.mensaje('sol_data_clave_catastral'));
|
||||
}else if(tipo == 4){
|
||||
console.log('todo bien');
|
||||
var Contx = agent.context.get('data_clave');
|
||||
if (Contx == null || Contx == NaN || Contx == undefined) {
|
||||
Contx = ExistParamtContext(agent, 'data_clave');
|
||||
}
|
||||
if (Contx != null && Contx != NaN && Contx != undefined) {
|
||||
if (Contx.parameters.clave_catast != null && Contx.parameters.clave_catast != "") {
|
||||
return Fun_ConsultarClavesCatastrales(agent, req, res, Contx.parameters.clave_catast, 1);
|
||||
}else{
|
||||
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
} else {
|
||||
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function Fun_ValidarDocumentos(agent, req, res, tipo){
|
||||
async function Fun_ValidarDocumentos(agent, req, res, tipo) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if(tipo == 1){
|
||||
if (data_context) {
|
||||
if (tipo == 1) {
|
||||
return agent.add(dialog.mensaje('sol_data_codigo'));
|
||||
}else if(tipo == 2){
|
||||
} else if (tipo == 2) {
|
||||
var Contx = agent.context.get('context_codigo_barras');
|
||||
if (Contx == null || Contx == NaN || Contx == undefined){ Contx = ExistParamtContext(agent,'context_codigo_barras'); }
|
||||
if (Contx != null && Contx != NaN && Contx != undefined){
|
||||
if(Contx.parameters.codigo_barras != null && Contx.parameters.codigo_barras != "" ){
|
||||
if (Contx == null || Contx == NaN || Contx == undefined) {
|
||||
Contx = ExistParamtContext(agent, 'context_codigo_barras');
|
||||
}
|
||||
if (Contx != null && Contx != NaN && Contx != undefined) {
|
||||
if (Contx.parameters.codigo_barras != null && Contx.parameters.codigo_barras != "") {
|
||||
let legion = await funcion.ValidarComprobante(Contx.parameters.codigo_barras.toUpperCase());
|
||||
if(legion['ok'] == true){
|
||||
if (legion['ok'] == true) {
|
||||
var send = '';
|
||||
legion['data']['msg'].forEach((element, index) => {
|
||||
send = send + element + '\n';
|
||||
});
|
||||
if(send != ''){
|
||||
if (send != '') {
|
||||
agent.add(send);
|
||||
}
|
||||
if(legion['data']['url2'][0] != undefined){
|
||||
agent.add(new Card({
|
||||
title: 'Ver documento',
|
||||
// text: `This is the body text of a card. You can even use line\n breaks and emoji! 💁`,
|
||||
buttonText: 'Clic aquí',
|
||||
buttonUrl: legion['data']['url2'][0]
|
||||
})
|
||||
);
|
||||
|
||||
agent.add('Ver documento:\n'+legion['data']['url2'][0]);
|
||||
// agent.add('Ver documento: ' + ' https://mantaentusmanos.test/c/VP-035013.com');
|
||||
if (legion['data']['url2'][0] != undefined) {
|
||||
agent.add('Ver documento:\n' + legion['data']['url2'][0]);
|
||||
}
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}else{
|
||||
} else {
|
||||
agent.add(legion['msg']);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
return Fun_ListarMenu(agent, req, res);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function Func_FallbackComprobantes(agent, req, res){
|
||||
agent.context.set({name:'0-Bienvenida-Miscomprobantesdepago-followup', lifespan: 1 });
|
||||
return agent.add('Envíe el número de la opción que desee: \n\n1. Ver todos los comprobantes \n0. Volver al menu principal');
|
||||
function ResolveDefauld(agent) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add('No logre resolver su petición 😢 \n' +
|
||||
'¿Que tal si lo volvemos a intentar? \n' +
|
||||
dialog.mensaje('menu_hueso'));
|
||||
}
|
||||
|
||||
function Func_FallbackInfoTramites(agent, req, res){
|
||||
agent.context.set({name:'0-Bienvenida-InfTram-followup', lifespan: 1 });
|
||||
|
||||
|
||||
function Func_FallbackComprobantes(agent, req, res) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-Miscomprobantesdepago-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add('Envíe el número de la opción que desee: \n\n1. Ver todos los comprobantes \n0. Volver al menu principal \n\n -Ingrese el número de la opción que desee.');
|
||||
}
|
||||
|
||||
function Func_FallbackInfoTramites(agent, req, res) {
|
||||
agent.context.set({
|
||||
name: '0-Bienvenida-InfTram-followup',
|
||||
lifespan: 1
|
||||
});
|
||||
return agent.add(dialog.mensaje('info_tramites'));
|
||||
}
|
||||
|
||||
|
||||
async function Func_MisComprobantesPago(agent, req, res, lery){
|
||||
async function Func_MisComprobantesPago(agent, req, res, lery) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if(lery == 3){
|
||||
if (data_context) {
|
||||
if (lery == 3) {
|
||||
return Fun_ConsultarCCAtras(agent, req, res);
|
||||
}
|
||||
if(data_context != null && data_context != "" ){
|
||||
if (data_context != null && data_context != "") {
|
||||
let legion = await funcion.ConsultaComprobantes(data_context.cedula, lery);
|
||||
if(legion['ok'] == true){
|
||||
console.log(legion);
|
||||
if (legion['ok'] == true) {
|
||||
var msger = '';
|
||||
let coun = legion['data'].length;
|
||||
if(lery == 1 && coun > 1){
|
||||
msger = coun == 1 ? '*ÚLTIMOS COMPROBANTES DE PAGO:*\n\n' : '*ÚLTIMOS '+coun+' COMPROBANTES DE PAGO:*\n\n';
|
||||
}else{
|
||||
if (lery == 1 && coun > 1) {
|
||||
msger = coun == 1 ? '*ÚLTIMOS COMPROBANTES DE PAGO:*\n\n' : '*ÚLTIMOS ' + coun + ' COMPROBANTES DE PAGO:*\n\n';
|
||||
} else {
|
||||
msger = '*TODOS LOS COMPROBANTES DE PAGO:*\n\n';
|
||||
}
|
||||
legion['data'].forEach((element, index) => {
|
||||
msger = msger + '' + element['rubro'] + '\nFecha: ' + element['fecha'] + '\nValor págado: *' + element['valor_pagado'] + '*\nVer documento: ' + element['url'] + '\n\n';
|
||||
});
|
||||
agent.add(msger);
|
||||
if(lery == 1){
|
||||
if (lery == 1) {
|
||||
return Func_FallbackComprobantes(agent, req, res);
|
||||
}else{
|
||||
} else {
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
}else{
|
||||
agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
|
||||
} else {
|
||||
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
console-log(error);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function Fun_ConsultarClavesCatastrales(agent, req, res, _cedula = null){
|
||||
async function Fun_ConsultarClavesCatastrales(agent, req, res, _cedula = null, nuevo = null) {
|
||||
try {
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
if(data_context != null && data_context != "" ){
|
||||
if(_cedula == null){
|
||||
if (data_context) {
|
||||
if (data_context != null && data_context != "") {
|
||||
if (_cedula == null) {
|
||||
_cedula = data_context.cedula;
|
||||
}
|
||||
const regex = /^[0-9]*$/;
|
||||
if(regex.test(_cedula)){
|
||||
let legion = await funcion.ConsultaClaves(_cedula);
|
||||
if(legion['ok'] == true){
|
||||
_cedula = _cedula.replace(/-/g, "");
|
||||
if (regex.test(_cedula) ) {
|
||||
console.log('legion')
|
||||
let legion = await funcion.ConsultaClaves(_cedula, nuevo);
|
||||
console.log(legion)
|
||||
if (legion['ok'] == true) {
|
||||
let coun = legion['data'].length;
|
||||
legion['data'].forEach((element, index) => {
|
||||
console.log(element['valor'])
|
||||
var rec = element['valor']['boot']['anteriores'];
|
||||
if(element['valor']['boot']['anteriores'] != 'Recaudación al día'){
|
||||
if (element['valor']['boot']['anteriores'] != 'Recaudación al día') {
|
||||
rec = rec + '\n' + element['valor']['boot']['actual'] + '\n' + element['valor']['boot']['total']
|
||||
}
|
||||
if(index == (coun-1)){
|
||||
agent.add(element['text'] + '\n' +element['direccion']+ '\n' + rec);
|
||||
if (index == (coun - 1)) {
|
||||
agent.add(element['text'] + '\n' + element['direccion'] + '\n' + rec);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}else{
|
||||
agent.add(element['text'] + '\n' +funcion.conver_capitalice(element['direccion'])+ '\n' +rec);
|
||||
} else {
|
||||
agent.add(element['text'] + '\n' + funcion.conver_capitalice(element['direccion']) + '\n' + rec);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
|
||||
} else {
|
||||
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
}
|
||||
} else {
|
||||
if(nuevo == 1){
|
||||
agent.add('La clave catastral ingresada no es válida');
|
||||
}else{
|
||||
agent.add('El número de cédula ingresado no es válido');
|
||||
}
|
||||
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}
|
||||
} catch (error) {
|
||||
console-log(error);
|
||||
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
|
||||
return ResolveDefauld(agent);
|
||||
}
|
||||
}
|
||||
|
||||
@ -438,5 +713,8 @@ module.exports = {
|
||||
"Func_MisComprobantesPago": Func_MisComprobantesPago,
|
||||
"Func_FallbackComprobantes": Func_FallbackComprobantes,
|
||||
"Func_FallbackInfoTramites": Func_FallbackInfoTramites,
|
||||
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales
|
||||
"Fun_QueHacesFunction": Fun_QueHacesFunction,
|
||||
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales,
|
||||
"Func_HistorialTramite": Func_HistorialTramite,
|
||||
"Func_MisTramites": Func_MisTramites
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user