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 }