Commit 4b5f4a16 authored by Gabriel's avatar Gabriel

Agrega mensajes de info y error

parent c1d8eb7d
const config = require('config');
const axios = require('axios');
let _ = require('lodash');
const logger = require('../logger/index.js');
const AUTH_TOKEN = config.get('credenciales.isApiToken');
......@@ -22,14 +23,6 @@ function sortProvinciasByName(provincias){
return provinciasByName;
}
function getProvinciaById(provincias, id) {
for (let i = 0; i < provincias.length; i++) {
if (provincias[i].id_provincia === id) {
return provincias[i];
}
}
}
module.exports =
{
getProvincias: async function () {
......@@ -39,7 +32,7 @@ module.exports =
return sortProvinciasByName(provincias);
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
});
},
getMedicosByName: async function (nombreMedico, idProvincia) {
......@@ -48,7 +41,7 @@ module.exports =
return response.data.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
});
},
getEspecialidadesMedico: async function (idPersonaInstitucional, idProvincia) {
......@@ -57,7 +50,7 @@ module.exports =
return response.data.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
});
},
getTurnosDisponibles: async function (idAgenda, idPersonaInstitucional, fechaUsa) {
......@@ -66,7 +59,7 @@ module.exports =
return response.data.turnos;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
});
},
getSiguientesTurnosDisponibles: async function (idAgenda, idPersonaInstitucional) {
......@@ -75,7 +68,7 @@ module.exports =
return response.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
});
},
existeUsuario: async function(tipo_documento, numero_documento, fecha_nacimiento, sexo){
......@@ -84,7 +77,7 @@ module.exports =
return response.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
});
},
crearTurno: async function (idPersonaFederada, idHorario, fechaHora) {
......@@ -97,7 +90,8 @@ module.exports =
return response.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
return error;
});
},
federarUsuario: async function (tipoDocumento, numeroDocumento, fechaNacimiento, sexo, mail, telefonoCelular, idDominio) {
......@@ -119,7 +113,7 @@ module.exports =
return response.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
return {success: false};
});
},
......@@ -129,7 +123,7 @@ module.exports =
return response.data;
})
.catch(function (error) {
console.log(error);
logger.error(error.data);
return {success: false};
});
}
......
const config = require('config');
const axios = require('axios');
const logger = require('../logger/index.js');
const API_KEY = config.get('credenciales.sendinblue.apiKey');
const COUNTRY_CODE_ARG = "+54";
......@@ -13,12 +14,12 @@ let sendinblueClient = axios.create({
async function saveContactToList(email, nombres, apellidos, sms, listId){
sms = parseSms(sms);
createOrUpdateContact(email, nombres, apellidos, sms)
.then(function (data){
console.log(`Usuario ${email} creado/actualizado`);
.then(function (){
logger.info(`Usuario ${email} creado/actualizado`);
addContactToList(email, listId);
})
.catch(function (error) {
console.log(`Error al crear/actualizar usuario en sendinblue: ${JSON.stringify(error.response.data)}`);
logger.error(`Error al crear/actualizar usuario en sendinblue: ${JSON.stringify(error.response.data)}`);
});
}
......@@ -52,6 +53,7 @@ async function createOrUpdateContact(email, nombres, apellidos, sms){
})
}
else{
logger.error(error.data);
return error;
}
});
......@@ -62,11 +64,12 @@ async function addContactToList(email, listId){
"emails": [email]
})
.then(async function (response) {
console.log(`Usuario ${email} agregado a lista ${listId}`)
logger.info(`Usuario ${email} agregado a lista ${listId}`)
return response.data;
})
.catch(async function (error) {
console.log(`Error al agregar al usuario ${email} a la lista ${listId}: ${JSON.stringify(error.response.data)}`);
logger.error(`Error al agregar al usuario ${email} a la lista ${listId}:`);
logger.error(error.response.data);
});
}
......
......@@ -5,6 +5,7 @@ const crisp = require('./crisp.js');
const pasosTurnosProgramados = require('./handlers/pasos_is_turnos_programados.js');
const pasosIpsTurnosBajoDemanda = require('./handlers/pasos_ips_turnos_bajo_demanda');
const sendinblue = require('./endpoints/sendinblue.js');
const logger = require('./logger/index.js');
const WEBSITE_ID_IPS_TURNOS_BAJO_DEMANDA = config.get('crispWebsiteIdIpsTurnosBajoDemanda');
const WEBSITE_ID_TURNOS_PROGRAMADOS = config.get('crispWebsiteIdIsTurnosProgramados');
......@@ -13,11 +14,18 @@ const REINICIAR = 'REINICIAR';
crisp.CrispClient.plugin.getConnectAccount()
.then(account => {
console.log('El chatbot esta escuchando eventos');
console.log("Plugin ID:", account.plugin_id);
logger.info('Servicio iniciado');
logger.info("Plugin ID:", account.plugin_id);
})
.catch(error => console.error("Error al inicializar el chatbot: ", error));
.catch(error => {
console.error('Error al inicializar el chatbot: ', error);
logger.error('Error al inicializar el chatbot:');
logger.error(error);
});
crisp.CrispClient.on("message:updated", async function (message) {
logger.info('Opcion del usuario:');
logger.info(message.content);
darSiguientePaso(message, message.website_id, message.session_id);
})
......@@ -26,6 +34,7 @@ crisp.CrispClient.on("message:send", async function (message) {
await crisp.updateUserData(message.website_id, message.session_id, {});
}
let siguientePaso = await crisp.getSiguientePaso(message.website_id, message.session_id);
logger.info(`Usuario tipea: ${message.content}`)
if (siguientePaso == null) {
if(message.website_id === WEBSITE_ID_TURNOS_PROGRAMADOS){
enviarUserAListaSendingblue(message.website_id, message.session_id, config.get('sendingblueListId'));
......@@ -38,7 +47,8 @@ crisp.CrispClient.on("message:send", async function (message) {
darSiguientePaso(message, message.website_id, message.session_id)
.catch((error) => {
console.log(`Error al procesar el mensaje del usuario: ${error}`);
logger.error(`Error al procesar el mensaje del usuario:`);
logger.error(error);
crisp.sendTextMessage(message.website_id, message.session_id,
`Ocurrió un error al procesar su respuesta. Por favor, verifique los datos ingresados y reintente. Si quiere comenzar desde el inicio, escriba ${REINICIAR}.`)
})
......@@ -64,9 +74,10 @@ async function enviarUserAListaSendingblue(website_id, session_id, listId){
let email = crispUsrData['email'];
let phone = crispUsrData['phone'];
console.log(nombres, apellidos, email, phone);
logger.info(nombres, apellidos, email, phone);
sendinblue.saveContactToList(email, nombres, apellidos, phone, listId);
} catch (e) {
console.log(`Hubo un error al intentar enviar el usuario a la lista de sendinblue. Error: ${e}`);
logger.error(`Hubo un error al intentar enviar el usuario a la lista de sendinblue. Error:`);
logger.error(e);
}
}
\ No newline at end of file
const winston = require('winston');
const { combine, timestamp, printf } = winston.format;
const logFormat = printf(({ level, message, timestamp }) => {
return `${timestamp} ${level}: ${JSON.stringify(message)}`;
});
const logger = winston.createLogger({
level: 'info',
format: combine(
timestamp(),
logFormat
),
defaultMeta: { service: 'chatbot' },
transports: [
// Guardar logs con nivel `error` y por debajo en `error.log`
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
// Guardar logs con nivel `info` y por debajo en `info.log`
new winston.transports.File({ filename: 'logs/info.log' }),
],
});
module.exports = logger;
\ No newline at end of file
This diff is collapsed.
......@@ -11,10 +11,11 @@
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.21.1",
"axios": "^0.21.4",
"config": "^3.3.6",
"crisp-api": "5.0.1",
"lodash": "^4.17.21",
"crisp-api": "5.0.1"
"winston": "^3.3.3"
},
"devDependencies": {
"nodemon": "^2.0.7"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment