Commit 4b5f4a16 authored by Gabriel's avatar Gabriel

Agrega mensajes de info y error

parent c1d8eb7d
const config = require('config'); const config = require('config');
const axios = require('axios'); const axios = require('axios');
let _ = require('lodash'); let _ = require('lodash');
const logger = require('../logger/index.js');
const AUTH_TOKEN = config.get('credenciales.isApiToken'); const AUTH_TOKEN = config.get('credenciales.isApiToken');
...@@ -22,14 +23,6 @@ function sortProvinciasByName(provincias){ ...@@ -22,14 +23,6 @@ function sortProvinciasByName(provincias){
return provinciasByName; 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 = module.exports =
{ {
getProvincias: async function () { getProvincias: async function () {
...@@ -39,7 +32,7 @@ module.exports = ...@@ -39,7 +32,7 @@ module.exports =
return sortProvinciasByName(provincias); return sortProvinciasByName(provincias);
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
}); });
}, },
getMedicosByName: async function (nombreMedico, idProvincia) { getMedicosByName: async function (nombreMedico, idProvincia) {
...@@ -48,7 +41,7 @@ module.exports = ...@@ -48,7 +41,7 @@ module.exports =
return response.data.data; return response.data.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
}); });
}, },
getEspecialidadesMedico: async function (idPersonaInstitucional, idProvincia) { getEspecialidadesMedico: async function (idPersonaInstitucional, idProvincia) {
...@@ -57,7 +50,7 @@ module.exports = ...@@ -57,7 +50,7 @@ module.exports =
return response.data.data; return response.data.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
}); });
}, },
getTurnosDisponibles: async function (idAgenda, idPersonaInstitucional, fechaUsa) { getTurnosDisponibles: async function (idAgenda, idPersonaInstitucional, fechaUsa) {
...@@ -66,7 +59,7 @@ module.exports = ...@@ -66,7 +59,7 @@ module.exports =
return response.data.turnos; return response.data.turnos;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
}); });
}, },
getSiguientesTurnosDisponibles: async function (idAgenda, idPersonaInstitucional) { getSiguientesTurnosDisponibles: async function (idAgenda, idPersonaInstitucional) {
...@@ -75,7 +68,7 @@ module.exports = ...@@ -75,7 +68,7 @@ module.exports =
return response.data; return response.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
}); });
}, },
existeUsuario: async function(tipo_documento, numero_documento, fecha_nacimiento, sexo){ existeUsuario: async function(tipo_documento, numero_documento, fecha_nacimiento, sexo){
...@@ -84,7 +77,7 @@ module.exports = ...@@ -84,7 +77,7 @@ module.exports =
return response.data; return response.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
}); });
}, },
crearTurno: async function (idPersonaFederada, idHorario, fechaHora) { crearTurno: async function (idPersonaFederada, idHorario, fechaHora) {
...@@ -97,7 +90,8 @@ module.exports = ...@@ -97,7 +90,8 @@ module.exports =
return response.data; return response.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
return error;
}); });
}, },
federarUsuario: async function (tipoDocumento, numeroDocumento, fechaNacimiento, sexo, mail, telefonoCelular, idDominio) { federarUsuario: async function (tipoDocumento, numeroDocumento, fechaNacimiento, sexo, mail, telefonoCelular, idDominio) {
...@@ -119,7 +113,7 @@ module.exports = ...@@ -119,7 +113,7 @@ module.exports =
return response.data; return response.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
return {success: false}; return {success: false};
}); });
}, },
...@@ -129,7 +123,7 @@ module.exports = ...@@ -129,7 +123,7 @@ module.exports =
return response.data; return response.data;
}) })
.catch(function (error) { .catch(function (error) {
console.log(error); logger.error(error.data);
return {success: false}; return {success: false};
}); });
} }
......
const config = require('config'); const config = require('config');
const axios = require('axios'); const axios = require('axios');
const logger = require('../logger/index.js');
const API_KEY = config.get('credenciales.sendinblue.apiKey'); const API_KEY = config.get('credenciales.sendinblue.apiKey');
const COUNTRY_CODE_ARG = "+54"; const COUNTRY_CODE_ARG = "+54";
...@@ -13,12 +14,12 @@ let sendinblueClient = axios.create({ ...@@ -13,12 +14,12 @@ let sendinblueClient = axios.create({
async function saveContactToList(email, nombres, apellidos, sms, listId){ async function saveContactToList(email, nombres, apellidos, sms, listId){
sms = parseSms(sms); sms = parseSms(sms);
createOrUpdateContact(email, nombres, apellidos, sms) createOrUpdateContact(email, nombres, apellidos, sms)
.then(function (data){ .then(function (){
console.log(`Usuario ${email} creado/actualizado`); logger.info(`Usuario ${email} creado/actualizado`);
addContactToList(email, listId); addContactToList(email, listId);
}) })
.catch(function (error) { .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){ ...@@ -52,6 +53,7 @@ async function createOrUpdateContact(email, nombres, apellidos, sms){
}) })
} }
else{ else{
logger.error(error.data);
return error; return error;
} }
}); });
...@@ -62,11 +64,12 @@ async function addContactToList(email, listId){ ...@@ -62,11 +64,12 @@ async function addContactToList(email, listId){
"emails": [email] "emails": [email]
}) })
.then(async function (response) { .then(async function (response) {
console.log(`Usuario ${email} agregado a lista ${listId}`) logger.info(`Usuario ${email} agregado a lista ${listId}`)
return response.data; return response.data;
}) })
.catch(async function (error) { .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'); ...@@ -5,6 +5,7 @@ const crisp = require('./crisp.js');
const pasosTurnosProgramados = require('./handlers/pasos_is_turnos_programados.js'); const pasosTurnosProgramados = require('./handlers/pasos_is_turnos_programados.js');
const pasosIpsTurnosBajoDemanda = require('./handlers/pasos_ips_turnos_bajo_demanda'); const pasosIpsTurnosBajoDemanda = require('./handlers/pasos_ips_turnos_bajo_demanda');
const sendinblue = require('./endpoints/sendinblue.js'); 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_IPS_TURNOS_BAJO_DEMANDA = config.get('crispWebsiteIdIpsTurnosBajoDemanda');
const WEBSITE_ID_TURNOS_PROGRAMADOS = config.get('crispWebsiteIdIsTurnosProgramados'); const WEBSITE_ID_TURNOS_PROGRAMADOS = config.get('crispWebsiteIdIsTurnosProgramados');
...@@ -13,11 +14,18 @@ const REINICIAR = 'REINICIAR'; ...@@ -13,11 +14,18 @@ const REINICIAR = 'REINICIAR';
crisp.CrispClient.plugin.getConnectAccount() crisp.CrispClient.plugin.getConnectAccount()
.then(account => { .then(account => {
console.log('El chatbot esta escuchando eventos'); 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) { 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); darSiguientePaso(message, message.website_id, message.session_id);
}) })
...@@ -26,6 +34,7 @@ crisp.CrispClient.on("message:send", async function (message) { ...@@ -26,6 +34,7 @@ crisp.CrispClient.on("message:send", async function (message) {
await crisp.updateUserData(message.website_id, message.session_id, {}); await crisp.updateUserData(message.website_id, message.session_id, {});
} }
let siguientePaso = await crisp.getSiguientePaso(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 (siguientePaso == null) {
if(message.website_id === WEBSITE_ID_TURNOS_PROGRAMADOS){ if(message.website_id === WEBSITE_ID_TURNOS_PROGRAMADOS){
enviarUserAListaSendingblue(message.website_id, message.session_id, config.get('sendingblueListId')); enviarUserAListaSendingblue(message.website_id, message.session_id, config.get('sendingblueListId'));
...@@ -38,7 +47,8 @@ crisp.CrispClient.on("message:send", async function (message) { ...@@ -38,7 +47,8 @@ crisp.CrispClient.on("message:send", async function (message) {
darSiguientePaso(message, message.website_id, message.session_id) darSiguientePaso(message, message.website_id, message.session_id)
.catch((error) => { .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, 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}.`) `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){ ...@@ -64,9 +74,10 @@ async function enviarUserAListaSendingblue(website_id, session_id, listId){
let email = crispUsrData['email']; let email = crispUsrData['email'];
let phone = crispUsrData['phone']; let phone = crispUsrData['phone'];
console.log(nombres, apellidos, email, phone); logger.info(nombres, apellidos, email, phone);
sendinblue.saveContactToList(email, nombres, apellidos, phone, listId); sendinblue.saveContactToList(email, nombres, apellidos, phone, listId);
} catch (e) { } 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 @@ ...@@ -11,10 +11,11 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"axios": "^0.21.1", "axios": "^0.21.4",
"config": "^3.3.6", "config": "^3.3.6",
"crisp-api": "5.0.1",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"crisp-api": "5.0.1" "winston": "^3.3.3"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.7" "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