commit
This commit is contained in:
parent
fd7abe68a5
commit
de8727803d
39
funtions.js
39
funtions.js
@ -12,6 +12,7 @@ function conver_utf8(data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function conver_name(data) {
|
function conver_name(data) {
|
||||||
|
try {
|
||||||
var porciones = data.split(' ');
|
var porciones = data.split(' ');
|
||||||
if(porciones.length >= 2 && porciones.length <= 4){
|
if(porciones.length >= 2 && porciones.length <= 4){
|
||||||
var cadena = new String(data);
|
var cadena = new String(data);
|
||||||
@ -23,6 +24,15 @@ function conver_name(data) {
|
|||||||
cadena = cadena.toLowerCase();
|
cadena = cadena.toLowerCase();
|
||||||
return cadena.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
|
return cadena.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
|
||||||
}
|
}
|
||||||
|
}catch (error) {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function conver_capitalice(data) {
|
||||||
|
var cadena = new String(data);
|
||||||
|
cadena = cadena.toLowerCase();
|
||||||
|
return cadena.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -36,6 +46,15 @@ function AxiosPOST(url, params){
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
function AxiosGET(url, params){
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
axios.get(URLPC+url, params).then(function (response) {
|
||||||
|
resolve(response.data);
|
||||||
|
}).catch(function (error) {
|
||||||
|
resolve({'estado':false, 'data':[], 'msg':error});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async function ValidarSession(session){
|
async function ValidarSession(session){
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -86,6 +105,22 @@ async function RegistrarSession(session_id, cedula){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function ConsultaClaves(cedula){
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
var array = {'ok': false, 'data':[], 'msg':null};
|
||||||
|
AxiosGET('consulta_predios_detalle/2/'+cedula+'?boot=true', {}).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'; }
|
||||||
|
resolve(array);
|
||||||
|
}).catch(function (error) {
|
||||||
|
array['msg'] = error;
|
||||||
|
resolve(array);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -100,5 +135,7 @@ module.exports = {
|
|||||||
"RegistrarSession": RegistrarSession,
|
"RegistrarSession": RegistrarSession,
|
||||||
"ValidarSession": ValidarSession,
|
"ValidarSession": ValidarSession,
|
||||||
"conver_name": conver_name,
|
"conver_name": conver_name,
|
||||||
"CerrarSession": CerrarSession
|
"CerrarSession": CerrarSession,
|
||||||
|
"conver_capitalice": conver_capitalice,
|
||||||
|
"ConsultaClaves": ConsultaClaves
|
||||||
}
|
}
|
||||||
13
index.js
13
index.js
@ -36,14 +36,21 @@ app.post("/webhook", express.json(), function (req, res) {
|
|||||||
function ConfirmarCerrarSesionAgent(){
|
function ConfirmarCerrarSesionAgent(){
|
||||||
return metodos.Fun_ConfirmarCerrarSesionAgent(agent, req, res);
|
return metodos.Fun_ConfirmarCerrarSesionAgent(agent, req, res);
|
||||||
}
|
}
|
||||||
|
function ConsultarClavesCatastrales(){
|
||||||
|
return metodos.Fun_ConsultarClavesCatastrales(agent, req, res);
|
||||||
|
}
|
||||||
|
|
||||||
let intentMap = new Map();
|
let intentMap = new Map();
|
||||||
intentMap.set('Default Fallback Intent', DefauldAgent);
|
intentMap.set('Default Fallback Intent', DefauldAgent);
|
||||||
intentMap.set('0 - Solicitar datos', SolicitarDatosAgent);
|
intentMap.set('0 - Solicitar datos', SolicitarDatosAgent);
|
||||||
intentMap.set('0 - Bienvenida', WelcomeAgent);
|
intentMap.set('0 - Bienvenida', WelcomeAgent);
|
||||||
//Menu 1
|
|
||||||
|
//Menu 1 - Claves catastrales
|
||||||
|
intentMap.set('M1 - Consulta de claves catastrales', ConsultarClavesCatastrales);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Menu 1 - Cerrar sesion
|
||||||
intentMap.set('M0 - Cerrar sesion', ConfirmarCerrarSesionAgent);
|
intentMap.set('M0 - Cerrar sesion', ConfirmarCerrarSesionAgent);
|
||||||
intentMap.set('M0.1 - Cerrar sesion - SI', SiCerrarSesionAgent);
|
intentMap.set('M0.1 - Cerrar sesion - SI', SiCerrarSesionAgent);
|
||||||
intentMap.set('M0.2 - Cerrar sesion - NO', NoCerrarSesionAgent);
|
intentMap.set('M0.2 - Cerrar sesion - NO', NoCerrarSesionAgent);
|
||||||
|
|||||||
84
metodos.js
84
metodos.js
@ -4,7 +4,6 @@ var dialog = require("./interacciones.js");
|
|||||||
async function Fun_DefauldAgent(agent, req, res){
|
async function Fun_DefauldAgent(agent, req, res){
|
||||||
let data_context = await ValidateDataUserContext(agent);
|
let data_context = await ValidateDataUserContext(agent);
|
||||||
if(data_context){
|
if(data_context){
|
||||||
console.log('defaulde')
|
|
||||||
agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name) ));
|
agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name) ));
|
||||||
agent.context.set({name:'menu_1', lifespan:1});
|
agent.context.set({name:'menu_1', lifespan:1});
|
||||||
return agent.add(dialog.mensaje('menu_1'));
|
return agent.add(dialog.mensaje('menu_1'));
|
||||||
@ -18,25 +17,25 @@ async function Fun_SolicitarDatosAgent(agent, req, res){
|
|||||||
const sessionId = req.body.session.split("/").reverse()[0];
|
const sessionId = req.body.session.split("/").reverse()[0];
|
||||||
let data_context = await ValidateDataUserContext(agent);
|
let data_context = await ValidateDataUserContext(agent);
|
||||||
if(data_context){
|
if(data_context){
|
||||||
if(data_context.cedula != null && data_context.cedula != "" ){
|
if(data_context != null && data_context != "" ){
|
||||||
let sesion = await funcion.RegistrarSession(sessionId, data_context.cedula);
|
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')
|
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'] } });
|
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula: sesion['data']['cedula'], name: sesion['data']['name'] } });
|
||||||
}else{
|
}else{
|
||||||
agent.context.set({name:'data_user_context', lifespan: 0 });
|
agent.context.set({name:'data_user_context', lifespan: 0 });
|
||||||
agent.context.set({name:'Bienvenida', lifespan: 1 });
|
agent.context.set({name:'bienvenida_context', lifespan: 1 });
|
||||||
sesion['msg'] != null ? agent.add(sesion['msg'] ) : null;
|
sesion['msg'] != null ? agent.add(sesion['msg'] ) : null;
|
||||||
return agent.add(dialog.mensaje('sol_cedula'));
|
return agent.add(dialog.mensaje('sol_cedula'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Fun_WelcomeAgent(agent, req, res, true);
|
return Fun_WelcomeAgent(agent, req, res);
|
||||||
}else{
|
}else{
|
||||||
Fun_WelcomeAgent(agent, req, res);
|
return Fun_WelcomeAgent(agent, req, res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function Fun_WelcomeAgent(agent, req, res, hola = false){
|
async function Fun_WelcomeAgent(agent, req, res){
|
||||||
let data_context = await ValidateDataUserContext(agent);
|
let data_context = await ValidateDataUserContext(agent);
|
||||||
if(data_context){
|
if(data_context){
|
||||||
console.log('contexto existe........');
|
console.log('contexto existe........');
|
||||||
@ -50,10 +49,9 @@ async function Fun_WelcomeAgent(agent, req, res, hola = false){
|
|||||||
if(legion['ok'] == true && legion['data']['name'] != null){
|
if(legion['ok'] == true && legion['data']['name'] != null){
|
||||||
console.log('sesion existe en la bd')
|
console.log('sesion existe en la bd')
|
||||||
agent.context.set({name:'menu_1', lifespan:1});
|
agent.context.set({name:'menu_1', lifespan:1});
|
||||||
agent.context.set({name:'Bienvenida', lifespan:0});
|
agent.context.set({name:'bienvenida_context', lifespan:0});
|
||||||
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula: legion['data']['cedula'], name: legion['data']['name'] } });
|
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));
|
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'));
|
return agent.add(dialog.mensaje('menu_1'));
|
||||||
}else{
|
}else{
|
||||||
agent.add(dialog.mensaje('bienvenida'));
|
agent.add(dialog.mensaje('bienvenida'));
|
||||||
@ -64,31 +62,45 @@ async function Fun_WelcomeAgent(agent, req, res, hola = false){
|
|||||||
|
|
||||||
|
|
||||||
function ValidateDataUserContext(agent){
|
function ValidateDataUserContext(agent){
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try{
|
try{
|
||||||
var ContextIn = agent.context.get('data_user_context');
|
var Contx = null;
|
||||||
if (ContextIn != null && ContextIn != NaN && ContextIn != undefined){
|
Contx = agent.context.get('data_user_context');
|
||||||
if(ContextIn.parameters.cedula != null && ContextIn.parameters.cedula != "" ){
|
if (Contx == null || Contx == NaN || Contx == undefined){
|
||||||
agent.context.set({name:'Bienvenida', lifespan:0});
|
Contx = ExistParamtContext(agent,'data_user_context');
|
||||||
let _cedu = ContextIn.parameters.cedula; let _nam = ContextIn.parameters.name;
|
}
|
||||||
|
if (Contx != null && Contx != NaN && Contx != undefined){
|
||||||
|
if(Contx.parameters.cedula != null && Contx.parameters.cedula != "" ){
|
||||||
|
agent.context.set({name:'bienvenida_context', 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 } });
|
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula:_cedu, name:_nam } });
|
||||||
resolve({ cedula:_cedu, name:_nam });
|
resolve({ cedula:_cedu, name:_nam });
|
||||||
}else{
|
}else{
|
||||||
agent.context.set({name:'Bienvenida', lifespan:1}); agent.context.set({name:'data_user_context', lifespan:0});
|
agent.context.set({name:'bienvenida_context', lifespan:1});
|
||||||
resolve(false);
|
resolve(false);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
agent.context.set({name:'Bienvenida', lifespan:1}); agent.context.set({name:'data_user_context', lifespan:0});
|
agent.context.set({name:'bienvenida_context', lifespan:1});
|
||||||
resolve(false);
|
resolve(false);
|
||||||
}
|
}
|
||||||
}catch (error) {
|
}catch (error) {
|
||||||
agent.context.set({name:'Bienvenida', lifespan:1}); agent.context.set({name:'data_user_context', lifespan:0});
|
console.log(error);
|
||||||
|
agent.context.set({name:'bienvenida_context', lifespan:1});
|
||||||
resolve(false);
|
resolve(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ExistParamtContext(agent, pamameter){
|
||||||
|
var data = null;
|
||||||
|
agent.contexts.forEach(element => {
|
||||||
|
if(element.name == pamameter){
|
||||||
|
data = element;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
async function Fun_CerrarSesionAgent(agent, req, res, accion){
|
async function Fun_CerrarSesionAgent(agent, req, res, accion){
|
||||||
if(accion == 1){
|
if(accion == 1){
|
||||||
console.log('cerrando sesion...');
|
console.log('cerrando sesion...');
|
||||||
@ -96,7 +108,7 @@ async function Fun_CerrarSesionAgent(agent, req, res, accion){
|
|||||||
let legion = await funcion.CerrarSession(sessionId);
|
let legion = await funcion.CerrarSession(sessionId);
|
||||||
if(legion['ok'] == true){
|
if(legion['ok'] == true){
|
||||||
agent.add(legion['msg']);
|
agent.add(legion['msg']);
|
||||||
agent.context.set({name:'Bienvenida', lifespan:1});
|
agent.context.set({name:'bienvenida_context', lifespan:1});
|
||||||
agent.context.set({name:'data_user_context', lifespan: 0, parameters:{}});
|
agent.context.set({name:'data_user_context', lifespan: 0, parameters:{}});
|
||||||
agent.add(dialog.mensaje('bienvenida'));
|
agent.add(dialog.mensaje('bienvenida'));
|
||||||
return agent.add(dialog.mensaje('sol_cedula'));
|
return agent.add(dialog.mensaje('sol_cedula'));
|
||||||
@ -116,17 +128,47 @@ async function Fun_ConfirmarCerrarSesionAgent(agent, req, res){
|
|||||||
let data_context = await ValidateDataUserContext(agent);
|
let data_context = await ValidateDataUserContext(agent);
|
||||||
if(data_context){
|
if(data_context){
|
||||||
agent.context.set({name:'cerrar_sesion', lifespan:1});
|
agent.context.set({name:'cerrar_sesion', lifespan:1});
|
||||||
agent.add('¿Esta de acuerdo en cerrar la sesión? \n1. SI \n2. NO');
|
return agent.add('¿Esta de acuerdo en cerrar la sesión? \n1. SI \n2. NO');
|
||||||
}else{
|
}else{
|
||||||
Fun_WelcomeAgent(agent, req, res);
|
return Fun_WelcomeAgent(agent, req, res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function Fun_ConsultarClavesCatastrales(agent, req, res){
|
||||||
|
let data_context = await ValidateDataUserContext(agent);
|
||||||
|
if(data_context){
|
||||||
|
if(data_context != null && data_context != "" ){
|
||||||
|
let legion = await funcion.ConsultaClaves(data_context.cedula);
|
||||||
|
if(legion['ok'] == true){
|
||||||
|
let coun = legion['data'].length;
|
||||||
|
legion['data'].forEach((element, index) => {
|
||||||
|
var rec = element['valor']['boot']['anteriores'];
|
||||||
|
if(element['valor']['boot']['anteriores'] != 'Recaudación al día'){
|
||||||
|
rec = rec + '\n' + element['valor']['boot']['actual'] + '\n' + element['valor']['boot']['total']
|
||||||
|
}
|
||||||
|
console.log(rec);
|
||||||
|
if(index == (coun-1)){
|
||||||
|
return agent.add(element['text'] + '\n' +element['direccion']+ '\n' + rec);
|
||||||
|
}else{
|
||||||
|
agent.add(element['text'] + '\n' +funcion.conver_capitalice(element['direccion'])+ '\n' +rec);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
return agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return Fun_WelcomeAgent(agent, req, res);
|
||||||
|
}
|
||||||
|
// return agent.add('exito');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
"Fun_DefauldAgent": Fun_DefauldAgent,
|
"Fun_DefauldAgent": Fun_DefauldAgent,
|
||||||
"Fun_SolicitarDatosAgent": Fun_SolicitarDatosAgent,
|
"Fun_SolicitarDatosAgent": Fun_SolicitarDatosAgent,
|
||||||
"Fun_WelcomeAgent": Fun_WelcomeAgent,
|
"Fun_WelcomeAgent": Fun_WelcomeAgent,
|
||||||
"Fun_CerrarSesionAgent": Fun_CerrarSesionAgent,
|
"Fun_CerrarSesionAgent": Fun_CerrarSesionAgent,
|
||||||
"Fun_ConfirmarCerrarSesionAgent": Fun_ConfirmarCerrarSesionAgent
|
"Fun_ConfirmarCerrarSesionAgent": Fun_ConfirmarCerrarSesionAgent,
|
||||||
|
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales
|
||||||
}
|
}
|
||||||
6
package-lock.json
generated
6
package-lock.json
generated
@ -473,9 +473,9 @@
|
|||||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||||
},
|
},
|
||||||
"dialogflow-fulfillment": {
|
"dialogflow-fulfillment": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/dialogflow-fulfillment/-/dialogflow-fulfillment-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/dialogflow-fulfillment/-/dialogflow-fulfillment-0.6.0.tgz",
|
||||||
"integrity": "sha512-lBnjPyXmO0P3grJfNBPTbVX1J3GVCBE1KZ+dEskbsH1O6DVXvFR/ncYroE85dfqGII7xUukfSjtqd084HT3W+w==",
|
"integrity": "sha512-ZZz5lYJOpzwKIHK01/NclZLX3paNsbGe8q3mcULYrxSNYdXkMR4vsYN4hzBMsE6vQwoDhSO+mYxoO6Cj9gYiOw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "^3.1.0",
|
"debug": "^3.1.0",
|
||||||
"lodash": "^4.17.11"
|
"lodash": "^4.17.11"
|
||||||
|
|||||||
@ -4,14 +4,15 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"start": "nodemon ./index.js"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"actions-on-google": "^2.14.0",
|
"actions-on-google": "^2.14.0",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"dialogflow-fulfillment": "^0.6.1",
|
"dialogflow-fulfillment": "0.6.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"nodemon": "^2.0.7"
|
"nodemon": "^2.0.7"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user