const validar = require('../../helper/validar'); const dbPath = '../../db/tablas'; const Carrera = require(`${dbPath}/Carrera`); const Carrito = require(`${dbPath}/Carrito`); const Equipo = require(`${dbPath}/Equipo`); const Modulo = require(`${dbPath}/Modulo`); const Prestamo = require(`${dbPath}/Prestamo`); const TipoCarrito = require(`${dbPath}/TipoCarrito`); const TipoUsuario = require(`${dbPath}/TipoUsuario`); const Usuario = require(`${dbPath}/Usuario`); const activos = async (body) => { const idModulo = validar.validarId(body.idModulo); const pagina = validar.validarNumero(body.pagina, true); // filtros return Modulo.findOne({ where: { idModulo } }) .then((res) => { if (!res) throw new Error('No existe este modulo.'); return Prestamo.findAndCountAll({ where: { activo: true }, include: [ { model: Equipo, include: [ { model: Carrito, where: { idModulo }, include: [{ model: TipoCarrito }, { model: Modulo }], }, ], }, { model: Usuario, include: [{ model: TipoUsuario }, { model: Carrera }], }, ], limit: 25, offset: 25 * (pagina - 1), order: [['createdAt', 'DESC']], }); }) .then((res) => { for (let i = 0; i < res.length; i++) { delete res[i].rows.dataValues.idUsuario; delete res[i].rows.dataValues.idOperadorEntrega; delete res[i].rows.dataValues.idOperadorRegreso; delete res[i].rows.dataValues.idEquipo; delete res[i].rows.dataValues.Equipo.dataValues.idPrograma; delete res[i].rows.dataValues.Equipo.dataValues.idStatus; delete res[i].rows.dataValues.Equipo.dataValues.idCarrito; delete res[i].rows.dataValues.Equipo.dataValues.Carrito.dataValues .idTipoCarrito; delete res[i].rows.dataValues.Equipo.dataValues.Carrito.dataValues .idModulo; delete res[i].rows.dataValues.Usuario.dataValues.idTipoUsuario; delete res[i].rows.dataValues.Usuario.dataValues.idCarrera; delete res[i].rows.dataValues.Usuario.dataValues.password; } return { count: res.count, activos: res.rows }; }); }; module.exports = activos;