diff --git a/server/controller/Servicio/serviciosAdmin.js b/server/controller/Servicio/serviciosAdmin.js index cee975e..92e2b39 100644 --- a/server/controller/Servicio/serviciosAdmin.js +++ b/server/controller/Servicio/serviciosAdmin.js @@ -8,7 +8,6 @@ const TipoUsuario = require('../../db/tablas/TipoUsuario'); const serviciosAdmin = async (body) => { let pagina = validar.validarId(body.pagina); - let idUsuario = validar.validarId(body.idUsuario); let idStatus = body.idStatus ? validar.validarId(body.idStatus) : null; let nombre = body.nombre ? validar.validarTexto(body.nombre, 'El nombre', 60) @@ -16,62 +15,55 @@ const serviciosAdmin = async (body) => { let numeroCuenta = body.numeroCuenta ? validar.validarNumeroCuenta(body.numeroCuenta) : ''; - let where = { [Op.and]: [{ idStatus: { [Op.ne]: 10 } }] }; + let where = {}; - if (idStatus) where[Op.and].push({ idStatus }); - return Usuario.findOne({ where: { idUsuario } }) - .then((res) => { - if (!res) throw new Error('No existe este usuario.'); - if (res.idTipoUsuario !== 1) - throw new Error('No es un usuario tipo admin.'); - return Servicio.findAll({ - where, - include: [ - { - model: Usuario, - include: { model: TipoUsuario }, - where: { - usuario: { [Op.like]: `%${numeroCuenta}%` }, - nombre: { [Op.like]: `%${nombre}%` }, - }, + if (idStatus) where.idStatus = idStatus; + return Servicio.findAll({ + where, + include: [ + { + model: Usuario, + include: { model: TipoUsuario }, + where: { + usuario: { [Op.like]: `%${numeroCuenta}%` }, + nombre: { [Op.like]: `%${nombre}%` }, + }, + }, + { model: Carrera }, + { model: Status }, + ], + }).then((res) => { + let data = []; + + for (let i = pagina * 25 - 25; i < res.length && i < pagina * 25; i++) + data.push({ + idServicio: res[i].idServicio, + fechaInicio: res[i].fechaInicio, + fechaFin: res[i].fechaFin, + Usuario: { + idUsuario: res[i].Usuario.idUsuario, + usuario: res[i].Usuario.usuario, + nombre: res[i].Usuario.nombre, + TipoUsuario: { + idTipoUsuario: res[i].Usuario.TipoUsuario.idTipoUsuario, + tipoUsuario: res[i].Usuario.TipoUsuario.tipoUsuario, }, - { model: Carrera }, - { model: Status }, - ], + }, + Carrera: { + idCarrera: res[i].Carrera.idCarrera, + carrera: res[i].Carrera.carrera, + }, + Status: { + idStatus: res[i].Status.idStatus, + status: res[i].Status.status, + }, }); - }) - .then((res) => { - let data = []; - - for (let i = pagina * 25 - 25; i < res.length && i < pagina * 25; i++) - data.push({ - idServicio: res[i].idServicio, - fechaInicio: res[i].fechaInicio, - fechaFin: res[i].fechaFin, - Usuario: { - idUsuario: res[i].Usuario.idUsuario, - usuario: res[i].Usuario.usuario, - nombre: res[i].Usuario.nombre, - TipoUsuario: { - idTipoUsuario: res[i].Usuario.TipoUsuario.idTipoUsuario, - tipoUsuario: res[i].Usuario.TipoUsuario.tipoUsuario, - }, - }, - Carrera: { - idCarrera: res[i].Carrera.idCarrera, - carrera: res[i].Carrera.carrera, - }, - Status: { - idStatus: res[i].Status.idStatus, - status: res[i].Status.status, - }, - }); - return { - registros: res.length, - faltantes: res.length - data.length - (pagina - 1) * 25, - servicios: data, - }; - }); + return { + registros: res.length, + faltantes: res.length - data.length - (pagina - 1) * 25, + servicios: data, + }; + }); }; module.exports = serviciosAdmin;