132 lines
5.6 KiB
JavaScript
132 lines
5.6 KiB
JavaScript
|
|
var funcion = require("./funtions.js");
|
||
|
|
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'));
|
||
|
|
}else{
|
||
|
|
return Fun_WelcomeAgent(agent, req, res);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
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 != "" ){
|
||
|
|
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 });
|
||
|
|
sesion['msg'] != null ? agent.add(sesion['msg'] ) : null;
|
||
|
|
return agent.add(dialog.mensaje('sol_cedula'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
Fun_WelcomeAgent(agent, req, res, true);
|
||
|
|
}else{
|
||
|
|
Fun_WelcomeAgent(agent, req, res);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
async function Fun_WelcomeAgent(agent, req, res, hola = false){
|
||
|
|
let data_context = await ValidateDataUserContext(agent);
|
||
|
|
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:'menu_1', lifespan:1});
|
||
|
|
return agent.add(dialog.mensaje('menu_1'));
|
||
|
|
}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){
|
||
|
|
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:'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'));
|
||
|
|
return agent.add(dialog.mensaje('sol_cedula'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
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;
|
||
|
|
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});
|
||
|
|
resolve(false);
|
||
|
|
}
|
||
|
|
}else{
|
||
|
|
agent.context.set({name:'Bienvenida', lifespan:1}); agent.context.set({name:'data_user_context', lifespan:0});
|
||
|
|
resolve(false);
|
||
|
|
}
|
||
|
|
}catch (error) {
|
||
|
|
agent.context.set({name:'Bienvenida', lifespan:1}); agent.context.set({name:'data_user_context', lifespan:0});
|
||
|
|
resolve(false);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
async function Fun_CerrarSesionAgent(agent, req, res, accion){
|
||
|
|
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:'Bienvenida', 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{
|
||
|
|
return agent.add(legion['msg']);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if(accion == 0){
|
||
|
|
agent.context.set({name:'menu_1', lifespan:1});
|
||
|
|
agent.add(dialog.mensaje('afirmacion'));
|
||
|
|
return agent.add(dialog.mensaje('menu_1'));
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
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');
|
||
|
|
}else{
|
||
|
|
Fun_WelcomeAgent(agent, req, res);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
"Fun_DefauldAgent": Fun_DefauldAgent,
|
||
|
|
"Fun_SolicitarDatosAgent": Fun_SolicitarDatosAgent,
|
||
|
|
"Fun_WelcomeAgent": Fun_WelcomeAgent,
|
||
|
|
"Fun_CerrarSesionAgent": Fun_CerrarSesionAgent,
|
||
|
|
"Fun_ConfirmarCerrarSesionAgent": Fun_ConfirmarCerrarSesionAgent
|
||
|
|
}
|