commit
This commit is contained in:
parent
fd7abe68a5
commit
de8727803d
59
funtions.js
59
funtions.js
@ -12,19 +12,29 @@ function conver_utf8(data) {
|
||||
}
|
||||
|
||||
function conver_name(data) {
|
||||
var porciones = data.split(' ');
|
||||
if(porciones.length >= 2 && porciones.length <= 4){
|
||||
var cadena = new String(data);
|
||||
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{
|
||||
var cadena = new String(data);
|
||||
cadena = cadena.toLowerCase();
|
||||
return cadena.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
|
||||
try {
|
||||
var porciones = data.split(' ');
|
||||
if(porciones.length >= 2 && porciones.length <= 4){
|
||||
var cadena = new String(data);
|
||||
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{
|
||||
var cadena = new String(data);
|
||||
cadena = cadena.toLowerCase();
|
||||
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())));
|
||||
}
|
||||
|
||||
|
||||
|
||||
function AxiosPOST(url, params){
|
||||
@ -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){
|
||||
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,
|
||||
"ValidarSession": ValidarSession,
|
||||
"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(){
|
||||
return metodos.Fun_ConfirmarCerrarSesionAgent(agent, req, res);
|
||||
}
|
||||
|
||||
|
||||
function ConsultarClavesCatastrales(){
|
||||
return metodos.Fun_ConsultarClavesCatastrales(agent, req, res);
|
||||
}
|
||||
|
||||
let intentMap = new Map();
|
||||
intentMap.set('Default Fallback Intent', DefauldAgent);
|
||||
intentMap.set('0 - Solicitar datos', SolicitarDatosAgent);
|
||||
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.1 - Cerrar sesion - SI', SiCerrarSesionAgent);
|
||||
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){
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
if(data_context){
|
||||
console.log('defaulde')
|
||||
agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name) ));
|
||||
agent.context.set({name:'menu_1', lifespan: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];
|
||||
let data_context = await ValidateDataUserContext(agent);
|
||||
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);
|
||||
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:'Bienvenida', lifespan: 1 });
|
||||
agent.context.set({name:'bienvenida_context', lifespan: 1 });
|
||||
sesion['msg'] != null ? agent.add(sesion['msg'] ) : null;
|
||||
return agent.add(dialog.mensaje('sol_cedula'));
|
||||
}
|
||||
}
|
||||
Fun_WelcomeAgent(agent, req, res, true);
|
||||
return Fun_WelcomeAgent(agent, req, res);
|
||||
}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);
|
||||
if(data_context){
|
||||
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){
|
||||
console.log('sesion existe en la bd')
|
||||
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.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.add(dialog.mensaje('bienvenida'));
|
||||
@ -64,31 +62,45 @@ async function Fun_WelcomeAgent(agent, req, res, hola = false){
|
||||
|
||||
|
||||
function ValidateDataUserContext(agent){
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
try{
|
||||
var ContextIn = agent.context.get('data_user_context');
|
||||
if (ContextIn != null && ContextIn != NaN && ContextIn != undefined){
|
||||
if(ContextIn.parameters.cedula != null && ContextIn.parameters.cedula != "" ){
|
||||
agent.context.set({name:'Bienvenida', lifespan:0});
|
||||
let _cedu = ContextIn.parameters.cedula; let _nam = ContextIn.parameters.name;
|
||||
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){
|
||||
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 } });
|
||||
resolve({ cedula:_cedu, name:_nam });
|
||||
}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);
|
||||
}
|
||||
}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);
|
||||
}
|
||||
}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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
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){
|
||||
if(accion == 1){
|
||||
console.log('cerrando sesion...');
|
||||
@ -96,7 +108,7 @@ async function Fun_CerrarSesionAgent(agent, req, res, accion){
|
||||
let legion = await funcion.CerrarSession(sessionId);
|
||||
if(legion['ok'] == true){
|
||||
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.add(dialog.mensaje('bienvenida'));
|
||||
return agent.add(dialog.mensaje('sol_cedula'));
|
||||
@ -116,17 +128,47 @@ 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.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{
|
||||
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 = {
|
||||
"Fun_DefauldAgent": Fun_DefauldAgent,
|
||||
"Fun_SolicitarDatosAgent": Fun_SolicitarDatosAgent,
|
||||
"Fun_WelcomeAgent": Fun_WelcomeAgent,
|
||||
"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="
|
||||
},
|
||||
"dialogflow-fulfillment": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/dialogflow-fulfillment/-/dialogflow-fulfillment-0.6.1.tgz",
|
||||
"integrity": "sha512-lBnjPyXmO0P3grJfNBPTbVX1J3GVCBE1KZ+dEskbsH1O6DVXvFR/ncYroE85dfqGII7xUukfSjtqd084HT3W+w==",
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dialogflow-fulfillment/-/dialogflow-fulfillment-0.6.0.tgz",
|
||||
"integrity": "sha512-ZZz5lYJOpzwKIHK01/NclZLX3paNsbGe8q3mcULYrxSNYdXkMR4vsYN4hzBMsE6vQwoDhSO+mYxoO6Cj9gYiOw==",
|
||||
"requires": {
|
||||
"debug": "^3.1.0",
|
||||
"lodash": "^4.17.11"
|
||||
|
||||
@ -4,14 +4,15 @@
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "nodemon ./index.js"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"actions-on-google": "^2.14.0",
|
||||
"axios": "^0.21.1",
|
||||
"dialogflow-fulfillment": "^0.6.1",
|
||||
"dialogflow-fulfillment": "0.6.0",
|
||||
"express": "^4.17.1",
|
||||
"nodemon": "^2.0.7"
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user