manta_bot/metodos.js
Victor Sanchez Sosa 61592a34fe cc
2021-06-04 17:09:16 -05:00

261 lines
11 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){
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{
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 != 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:'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);
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_WelcomeAgent(agent, req, res){
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:'0-Bienvenida-followup', 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:'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.add(dialog.mensaje('bienvenida'));
return agent.add(dialog.mensaje('sol_cedula'));
}
}
}
function ValidateDataUserContext(agent){
return new Promise((resolve, reject) => {
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){
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});
resolve(false);
}
}catch (error) {
console.log(error);
agent.context.set({name:'0-Bienvenida-followup', 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...');
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{
return agent.add(legion['msg']);
}
}
if(accion == 0){
agent.context.set({name:'0-Bienvenida-followup', 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.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{
return Fun_WelcomeAgent(agent, req, res);
}
}
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{
return Fun_WelcomeAgent(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});
return agent.add(dialog.mensaje('consulta_clave'));
}else{
return Fun_WelcomeAgent(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});
return agent.add(dialog.mensaje('consulta_clave'));
}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_ListarMenu(agent, req, res){
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
return agent.add(dialog.mensaje('menu_1'));
}
async function Fun_ConsultarOtrasClavesCatastrales(agent, req, res, tipo){
let data_context = await ValidateDataUserContext(agent);
if(data_context){
if(tipo == 1){
return agent.add(dialog.mensaje('sol_data_cedula'));
}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){
console.log(Contx);
if(Contx.parameters.cedula_otro != null && Contx.parameters.cedula_otro != "" ){
console.log('esperando por la cedula '+Contx.parameters.cedula_otro);
return Fun_ConsultarClavesCatastrales(agent, req, res, Contx.parameters.cedula_otro);
}
}else{
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
}
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_ConsultarClavesCatastrales(agent, req, res, _cedula = null){
try {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
if(data_context != null && data_context != "" ){
console.log(data_context+' ese');
if(_cedula == null){
_cedula = data_context.cedula;
}
console.log(_cedula+' ese');
const regex = /^[0-9]*$/;
if(regex.test(_cedula)){
let legion = await funcion.ConsultaClaves(_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)){
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(funcion.conver_name(data_context.name) +', '+ legion['msg']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}else{
agent.add('El número de cédula ingresado no es válido');
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
}
}else{
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
console-log(error);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}
module.exports = {
"Fun_DefauldAgent": Fun_DefauldAgent,
"Fun_SolicitarDatosAgent": Fun_SolicitarDatosAgent,
"Fun_WelcomeAgent": Fun_WelcomeAgent,
"Fun_CerrarSesionAgent": Fun_CerrarSesionAgent,
"Fun_ConfirmarCerrarSesionAgent": Fun_ConfirmarCerrarSesionAgent,
"Fun_ConfirmarConsultarClavesCatastrales": Fun_ConfirmarConsultarClavesCatastrales,
"Fun_ConsultarOtrasClavesCatastrales": Fun_ConsultarOtrasClavesCatastrales,
"Fun_ConsultaPredios": Fun_ConsultaPredios,
"Fun_ConsultarCCAtras": Fun_ConsultarCCAtras,
"Fun_ListarMenu": Fun_ListarMenu,
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales
}