const validar = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Carrito = require(`${dbPath}/Carrito`); const Equipo = require(`${dbPath}/Equipo`); const Modulo = require(`${dbPath}/Modulo`); const Operador = require(`${dbPath}/Operador`); const Prestamo = require(`${dbPath}/Prestamo`); const Programa = require(`${dbPath}/Programa`); const TipoCarrito = require(`${dbPath}/TipoCarrito`); const Usuario = require(`${dbPath}/Usuario`); const historialUsuario = async (body) => { const idUsuario = validar.validarId(body.idUsuario); const pagina = validar.validarNumero(body.pagina, true); return Prestamo.findAndCountAll({ include: [ { model: Equipo, include: [ { model: Carrito, include: [{ model: TipoCarrito }, { model: Modulo }], }, { model: Programa }, ], }, { model: Usuario, where: { idUsuario } }, { model: Operador, as: 'OperadorRegreso' }, { model: Operador, as: 'OperadorEntrega' }, { model: Operador, as: 'OperadorCancelacion' }, ], limit: 25, offset: 25 * (pagina - 1), order: [['createdAt', 'DESC']], }).then((res) => { for (let i = 0; i < res.rows.length; i++) { delete res.rows[i].dataValues.idOperadorEntrega; delete res.rows[i].dataValues.idOperadorRegreso; delete res.rows[i].dataValues.idOperadorCancelacion; delete res.rows[i].dataValues.idUsuario; delete res.rows[i].dataValues.idEquipo; delete res.rows[i].dataValues.Usuario; delete res.rows[i].dataValues.Equipo.dataValues.idCarrito; delete res.rows[i].dataValues.Equipo.dataValues.idStatus; delete res.rows[i].dataValues.Equipo.dataValues.idPrograma; delete res.rows[i].dataValues.Equipo.dataValues.updatedAt; delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues .idModulo; delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues .idTipoCarrito; delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues.activo; if (res.rows[i].OperadorEntrega) { delete res.rows[i].dataValues.OperadorEntrega.dataValues.password; delete res.rows[i].dataValues.OperadorEntrega.dataValues.activo; delete res.rows[i].dataValues.OperadorEntrega.dataValues.idTipoUsuario; } if (res.rows[i].OperadorRegreso) { delete res.rows[i].dataValues.OperadorRegreso.dataValues.password; delete res.rows[i].dataValues.OperadorRegreso.dataValues.activo; delete res.rows[i].dataValues.OperadorRegreso.dataValues.idTipoUsuario; } if (res.rows[i].OperadorCancelacion) { delete res.rows[i].dataValues.OperadorCancelacion.dataValues.password; delete res.rows[i].dataValues.OperadorCancelacion.dataValues.activo; delete res.rows[i].dataValues.OperadorCancelacion.dataValues .idTipoUsuario; } } return { count: res.count, historialUsuario: res.rows }; }); }; module.exports = historialUsuario;