attributes específicos

This commit is contained in:
xXpuma99Xx
2022-01-20 22:01:14 -06:00
parent 8d302d43b0
commit b1970fe4a5
23 changed files with 1210 additions and 1358 deletions
+1 -2
View File
@@ -10,10 +10,9 @@ const carrito = async (body) => {
return Carrito.findOne({
where: { idCarrito },
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre', 'activo'],
}).then((res) => {
if (!res) throw new Error('No existe este carrito.');
delete res.dataValues.idTipoCarrito;
delete res.dataValues.idModulo;
return res;
});
};
+1 -6
View File
@@ -6,12 +6,7 @@ const TipoCarrito = require(`${dbPath}/TipoCarrito`);
const carritos = async () => {
return Carrito.findAll({
include: [{ model: TipoCarrito }, { model: Modulo }],
}).then((res) => {
for (let i = 0; i < res.length; i++) {
delete res[i].dataValues.idTipoCarrito;
delete res[i].dataValues.idModulo;
}
return res;
attributes: ['idCarrito', 'sobrenombre', 'activo'],
});
};
+14 -15
View File
@@ -8,22 +8,21 @@ const Status = require(`${dbPath}/Status`);
const equiposCarrito = async (body) => {
const idCarrito = validarNumeroEntero(body.idCarrito, 'id carrito', true);
return Carrito.findOne({ where: { idCarrito } })
.then((res) => {
if (!res) throw new Error('No existe este carrito.');
return Equipo.findAll({
where: { idCarrito },
include: [{ model: Status }, { model: Programa }],
});
})
.then((res) => {
for (let i = 0; i < res.length; i++) {
delete res[i].dataValues.idCarrito;
delete res[i].dataValues.idStatus;
delete res[i].dataValues.idPrograma;
}
return res;
return Carrito.findOne({ where: { idCarrito } }).then((res) => {
if (!res) throw new Error('No existe este carrito.');
return Equipo.findAll({
where: { idCarrito },
include: [{ model: Status }, { model: Programa }],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
'apartado',
'enUso',
],
});
});
};
module.exports = equiposCarrito;
+13 -7
View File
@@ -18,18 +18,24 @@ const equipo = async (body) => {
return Equipo.findOne({
where: { numeroInventario },
include: [
{ model: Carrito, include: [{ model: TipoCarrito }, { model: Modulo }] },
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre', 'activo'],
},
{ model: Status },
{ model: Programa },
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
'apartado',
'enUso',
],
}).then((res) => {
if (!res) throw new Error('No existe este equipo.');
delete res.dataValues.idCarrito;
delete res.dataValues.idPrograma;
delete res.dataValues.idStatus;
delete res.dataValues.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Carrito.dataValues.idModulo;
if (!res.Programa) delete res.dataValues.Programa;
return res;
});
};
+10 -11
View File
@@ -7,21 +7,20 @@ const TipoCarrito = require(`${dbPath}/TipoCarrito`);
const equipos = async () => {
return Carrito.findAll({
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre', 'activo'],
}).then(async (res) => {
for (let i = 0; i < res.length; i++) {
for (let i = 0; i < res.length; i++)
res[i].dataValues.Equipos = await Equipo.findAll({
where: { idCarrito: res[i].idCarrito },
}).then((res) => {
for (let j = 0; j < res.length; j++) {
delete res[j].dataValues.idCarrito;
delete res[j].dataValues.idStatus;
delete res[j].dataValues.idPrograma;
}
return res;
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
'apartado',
'enUso',
],
});
delete res[i].dataValues.idTipoCarrito;
delete res[i].dataValues.idModulo;
}
return res;
});
};
@@ -24,28 +24,28 @@ const historialMultasEquipo = async (body) => {
{
model: Prestamo,
where: { idEquipo },
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'canceladoUsuario',
'createdAt',
],
},
{
model: Operador,
as: 'OperadorMulta',
attributes: ['idOperador', 'operador'],
},
{ model: Operador, as: 'OperadorMulta' },
],
attributes: ['idMulta', 'descripcion', 'fechaFin', 'createdAt'],
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.idInfraccion;
delete res.rows[i].dataValues.idPrestamo;
delete res.rows[i].dataValues.idOperadorMulta;
delete res.rows[i].dataValues.OperadorMulta.dataValues.password;
delete res.rows[i].dataValues.OperadorMulta.dataValues.idTipoUsuario;
delete res.rows[i].dataValues.OperadorMulta.dataValues.activo;
delete res.rows[i].dataValues.Prestamo.dataValues.idOperadorEntrega;
delete res.rows[i].dataValues.Prestamo.dataValues.idOperadorRegreso;
delete res.rows[i].dataValues.Prestamo.dataValues.idOperadorCancelacion;
delete res.rows[i].dataValues.Prestamo.dataValues.idUsuario;
delete res.rows[i].dataValues.Prestamo.dataValues.idEquipo;
}
return { count: res.count, historialMultasEquipo: res.rows };
});
}).then((res) => ({ count: res.count, historialMultasEquipo: res.rows }));
};
module.exports = historialMultasEquipo;
@@ -36,43 +36,40 @@ const historialMultasUsuario = async (body) => {
{
model: Carrito,
include: [{ model: Modulo }, { model: TipoCarrito }],
attributes: ['idCarrito', 'sobrenombre'],
},
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'canceladoUsuario',
'createdAt',
],
},
{ model: Infraccion },
{ model: Operador, as: 'OperadorMulta' },
{
model: Operador,
as: 'OperadorMulta',
attributes: ['idOperador', 'operador'],
},
],
attributes: ['idMulta', 'descripcion', 'fechaFin', 'createdAt'],
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.idInfraccion;
delete res.rows[i].dataValues.idPrestamo;
delete res.rows[i].dataValues.idOperadorMulta;
delete res.rows[i].dataValues.OperadorMulta.dataValues.password;
delete res.rows[i].dataValues.OperadorMulta.dataValues.idTipoUsuario;
delete res.rows[i].dataValues.OperadorMulta.dataValues.activo;
delete res.rows[i].dataValues.Prestamo.dataValues.idOperadorEntrega;
delete res.rows[i].dataValues.Prestamo.dataValues.idOperadorRegreso;
delete res.rows[i].dataValues.Prestamo.dataValues.idOperadorCancelacion;
delete res.rows[i].dataValues.Prestamo.dataValues.idUsuario;
delete res.rows[i].dataValues.Prestamo.dataValues.idEquipo;
delete res.rows[i].dataValues.Prestamo.dataValues.Equipo.dataValues
.idCarrito;
delete res.rows[i].dataValues.Prestamo.dataValues.Equipo.dataValues
.idStatus;
delete res.rows[i].dataValues.Prestamo.dataValues.Equipo.dataValues
.idPrograma;
delete res.rows[i].dataValues.Prestamo.dataValues.Equipo.dataValues
.Carrito.dataValues.idTipoCarrito;
delete res.rows[i].dataValues.Prestamo.dataValues.Equipo.dataValues
.Carrito.dataValues.idModulo;
}
return { count: res.count, historialMultasUsuario: res.rows };
});
}).then((res) => ({ count: res.count, historialMultasUsuario: res.rows }));
};
module.exports = historialMultasUsuario;
+20 -18
View File
@@ -17,24 +17,26 @@ const login = async (body) => {
return Operador.findOne({
where: { operador },
include: [{ model: TipoUsuario }],
}).then((res) => {
if (!res) throw new Error('No existe este operador.');
if (!res.activo) throw new Error('Este operador no esta activo.');
if (comparar(password, res.password)) {
delete res.dataValues.password;
delete res.dataValues.activo;
delete res.dataValues.idTipoUsuario;
return {
Operador: res,
token: crearTokenOperador({
idOperador: res.idOperador,
idTipoUsuario: res.TipoUsuario.idTipoUsuario,
}),
};
}
throw new Error('La contraseña es incorrecta.');
});
attributes: ['idOperador', 'password', 'activo'],
})
.then((res) => {
if (!res) throw new Error('No existe este operador.');
if (!res.activo) throw new Error('Este operador no esta activo.');
if (!comparar(password, res.password))
throw new Error('La contraseña es incorrecta.');
return Operador.findOne({
where: { operador },
include: [{ model: TipoUsuario }],
attributes: ['idOperador', 'operador', 'activo'],
});
})
.then((res) => ({
Operador: res,
token: crearTokenOperador({
idOperador: res.idOperador,
idTipoUsuario: res.TipoUsuario.idTipoUsuario,
}),
}));
};
module.exports = login;
+2 -7
View File
@@ -17,15 +17,10 @@ const operadores = async (body) => {
return Operador.findAndCountAll({
where: { idTipoUsuario: 2 },
include: [{ model: TipoUsuario }],
attributes: ['idOperador', 'operador', 'activo'],
limit: 25,
offset: 25 * (pagina - 1),
}).then((res) => {
for (let i = 0; i < res.rows.length; i++) {
delete res.rows[i].dataValues.password;
delete res.rows[i].dataValues.idTipoUsuario;
}
return { count: res.count, operadores: res.rows };
});
}).then((res) => ({ count: res.count, operadores: res.rows }));
};
module.exports = operadores;
+20 -24
View File
@@ -56,44 +56,40 @@ const activos = async (body) => {
model: Carrito,
where: { [Op.and]: whereCarrito },
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre'],
},
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
'apartado',
'enUso',
],
},
{
model: Usuario,
where: { usuario: { [Op.like]: `%${usuario}%` } },
include: [{ model: TipoUsuario }, { model: Carrera }],
attributes: ['idUsuario', 'usuario', 'nombre'],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'createdAt',
],
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.idUsuario;
delete res.rows[i].dataValues.idOperadorEntrega;
delete res.rows[i].dataValues.idOperadorRegreso;
delete res.rows[i].dataValues.idOperadorCancelacion;
delete res.rows[i].dataValues.idEquipo;
delete res.rows[i].dataValues.Equipo.dataValues.idPrograma;
delete res.rows[i].dataValues.Equipo.dataValues.idStatus;
delete res.rows[i].dataValues.Equipo.dataValues.idCarrito;
delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues
.idTipoCarrito;
delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues
.idModulo;
delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues
.activo;
delete res.rows[i].dataValues.Usuario.dataValues.idTipoUsuario;
delete res.rows[i].dataValues.Usuario.dataValues.multa;
delete res.rows[i].dataValues.Usuario.dataValues.activo;
delete res.rows[i].dataValues.Usuario.dataValues.idCarrera;
delete res.rows[i].dataValues.Usuario.dataValues.password;
}
return { count: res.count, activos: res.rows };
});
.then((res) => ({ count: res.count, activos: res.rows }));
};
module.exports = activos;
+10 -12
View File
@@ -51,8 +51,8 @@ const entregar = async (body) => {
{ where: { idPrestamo } }
);
})
.then((res) => {
return Equipo.findOne({
.then((res) =>
Equipo.findOne({
where: { idEquipo },
include: [
{
@@ -60,16 +60,14 @@ const entregar = async (body) => {
include: [{ model: TipoCarrito }, { model: Modulo }],
},
],
});
})
.then((res) => {
delete res.dataValues.idCarrito;
delete res.dataValues.idStatus;
delete res.dataValues.idPrograma;
delete res.dataValues.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Carrito.dataValues.idModulo;
return res;
});
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
})
);
};
module.exports = entregar;
+30 -36
View File
@@ -59,54 +59,48 @@ const historial = async (body) => {
model: Carrito,
where: { [Op.and]: whereCarrito },
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre'],
},
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
'updatedAt',
],
},
{
model: Usuario,
where: { usuario: { [Op.like]: `%${usuario}%` } },
include: [{ model: TipoUsuario }, { model: Carrera }],
attributes: ['idUsuario', 'usuario', 'nombre'],
},
{ model: Operador, as: 'OperadorRegreso' },
{ model: Operador, as: 'OperadorEntrega' },
{
model: Operador,
as: 'OperadorEntrega',
attributes: ['idOperador', 'operador'],
},
{
model: Operador,
as: 'OperadorRegreso',
attributes: ['idOperador', 'operador'],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'canceladoUsuario',
'createdAt',
],
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.idUsuario;
delete res.rows[i].dataValues.idOperadorEntrega;
delete res.rows[i].dataValues.idOperadorRegreso;
delete res.rows[i].dataValues.idEquipo;
delete res.rows[i].dataValues.idOperadorCancelacion;
delete res.rows[i].dataValues.Equipo.dataValues.idPrograma;
delete res.rows[i].dataValues.Equipo.dataValues.idStatus;
delete res.rows[i].dataValues.Equipo.dataValues.idCarrito;
delete res.rows[i].dataValues.Equipo.dataValues.updatedAt;
delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues
.idTipoCarrito;
delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues
.idModulo;
delete res.rows[i].dataValues.Equipo.dataValues.Carrito.dataValues.activo;
delete res.rows[i].dataValues.Usuario.dataValues.idTipoUsuario;
delete res.rows[i].dataValues.Usuario.dataValues.idCarrera;
delete res.rows[i].dataValues.Usuario.dataValues.password;
delete res.rows[i].dataValues.Usuario.dataValues.activo;
delete res.rows[i].dataValues.Usuario.dataValues.multa;
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;
}
}
return { count: res.count, historial: res.rows };
});
}).then((res) => ({ count: res.count, historial: res.rows }));
};
module.exports = historial;
+41 -37
View File
@@ -24,47 +24,51 @@ const historialEquipo = async (body) => {
return Prestamo.findAndCountAll({
include: [
{ model: Equipo, where: { idEquipo } },
{ model: Usuario, include: [{ model: TipoUsuario }, { model: Carrera }] },
{ model: Operador, as: 'OperadorRegreso' },
{ model: Operador, as: 'OperadorEntrega' },
{ model: Operador, as: 'OperadorCancelacion' },
{
model: Equipo,
where: { idEquipo },
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
{
model: Usuario,
include: [{ model: TipoUsuario }, { model: Carrera }],
attributes: ['idUsuario', 'usuario', 'nombre'],
},
{
model: Operador,
as: 'OperadorEntrega',
attributes: ['idOperador', 'operador'],
},
{
model: Operador,
as: 'OperadorRegreso',
attributes: ['idOperador', 'operador'],
},
{
model: Operador,
as: 'OperadorCancelacion',
attributes: ['idOperador', 'operador'],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'canceladoUsuario',
'createdAt',
],
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.idUsuario;
delete res.rows[i].dataValues.idOperadorEntrega;
delete res.rows[i].dataValues.idOperadorRegreso;
delete res.rows[i].dataValues.idOperadorCancelacion;
delete res.rows[i].dataValues.idEquipo;
delete res.rows[i].dataValues.Equipo;
delete res.rows[i].dataValues.Usuario.dataValues.idTipoUsuario;
delete res.rows[i].dataValues.Usuario.dataValues.idCarrera;
delete res.rows[i].dataValues.Usuario.dataValues.password;
delete res.rows[i].dataValues.Usuario.dataValues.multa;
delete res.rows[i].dataValues.Usuario.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, historialEquipo: res.rows };
});
}).then((res) => ({ count: res.count, historialEquipo: res.rows }));
};
module.exports = historialEquipo;
+38 -40
View File
@@ -32,54 +32,52 @@ const historialUsuario = async (body) => {
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre'],
},
{ model: Programa },
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
{
model: Usuario,
where: { idUsuario },
attributes: ['idUsuario', 'usuario', 'nombre'],
},
{
model: Operador,
as: 'OperadorEntrega',
attributes: ['idOperador', 'operador'],
},
{
model: Operador,
as: 'OperadorRegreso',
attributes: ['idOperador', 'operador'],
},
{
model: Operador,
as: 'OperadorCancelacion',
attributes: ['idOperador', 'operador'],
},
{ 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 };
});
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'canceladoUsuario',
'createdAt',
],
}).then((res) => ({ count: res.count, historialUsuario: res.rows }));
};
module.exports = historialUsuario;
+20 -19
View File
@@ -100,8 +100,8 @@ const pedir = async (body) => {
idEquipo,
})
)
.then((res) => {
return Prestamo.findOne({
.then((res) =>
Prestamo.findOne({
where: { idPrestamo: res.idPrestamo },
include: [
{
@@ -110,28 +110,29 @@ const pedir = async (body) => {
{
model: Carrito,
include: [{ model: Modulo }, { model: TipoCarrito }],
attributes: ['idCarrito', 'sobrenombre'],
},
{ model: Programa },
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
],
});
})
.then((res) => {
delete res.dataValues.idUsuario;
delete res.dataValues.idOperadorEntrega;
delete res.dataValues.idOperadorRegreso;
delete res.dataValues.idOperadorCancelacion;
delete res.dataValues.idEquipo;
delete res.dataValues.Equipo.dataValues.idCarrito;
delete res.dataValues.Equipo.dataValues.idStatus;
delete res.dataValues.Equipo.dataValues.idPrograma;
delete res.dataValues.Equipo.dataValues.updatedAt;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idModulo;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.activo;
return res;
});
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'createdAt',
],
})
);
};
module.exports = pedir;
+31 -30
View File
@@ -23,43 +23,44 @@ const prestamo = async (body) => {
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre'],
},
{ model: Programa },
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
{ model: Usuario, include: [{ model: TipoUsuario }, { model: Carrera }] },
{ model: Operador, as: 'OperadorRegreso' },
{ model: Operador, as: 'OperadorEntrega' },
{
model: Usuario,
include: [{ model: TipoUsuario }, { model: Carrera }],
attributes: ['idUsuario', 'usuario', 'nombre'],
},
{
model: Operador,
as: 'OperadorEntrega',
attributes: ['idOperador', 'operador'],
},
{
model: Operador,
as: 'OperadorRegreso',
attributes: ['idOperador', 'operador'],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'createdAt',
],
}).then((res) => {
if (!res) throw new Error('No existe este prestamo.');
delete res.dataValues.idUsuario;
delete res.dataValues.idOperadorEntrega;
delete res.dataValues.idOperadorRegreso;
delete res.dataValues.idOperadorCancelacion;
delete res.dataValues.idEquipo;
delete res.dataValues.Equipo.dataValues.idPrograma;
delete res.dataValues.Equipo.dataValues.idStatus;
delete res.dataValues.Equipo.dataValues.idCarrito;
delete res.dataValues.Equipo.dataValues.updatedAt;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idModulo;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.activo;
delete res.dataValues.Usuario.dataValues.idTipoUsuario;
delete res.dataValues.Usuario.dataValues.idCarrera;
delete res.dataValues.Usuario.dataValues.password;
delete res.dataValues.Usuario.dataValues.multa;
delete res.dataValues.Usuario.dataValues.activo;
if (res.OperadorEntrega) {
delete res.dataValues.OperadorEntrega.dataValues.password;
delete res.dataValues.OperadorEntrega.dataValues.activo;
delete res.dataValues.OperadorEntrega.dataValues.idTipoUsuario;
}
if (res.OperadorRegreso) {
delete res.dataValues.OperadorRegreso.dataValues.password;
delete res.dataValues.OperadorRegreso.dataValues.activo;
delete res.dataValues.OperadorRegreso.dataValues.idTipoUsuario;
}
return res;
});
};
+33 -34
View File
@@ -11,42 +11,41 @@ const Usuario = require(`${dbPath}/Usuario`);
const prestamo = async (body) => {
const idUsuario = validarNumeroEntero(body.idUsuario, 'id usuario', true);
return Usuario.findOne({ where: { idUsuario } })
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
return Usuario.findOne({ where: { idUsuario } }).then((res) => {
if (!res) throw new Error('No existe este usuario.');
return Prestamo.findOne({
where: { idUsuario, activo: true },
include: [
{
model: Equipo,
include: [
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
},
{ model: Programa },
],
},
],
});
})
.then((res) => {
if (!res) return null;
delete res.dataValues.idUsuario;
delete res.dataValues.idOperadorEntrega;
delete res.dataValues.idOperadorRegreso;
delete res.dataValues.idOperadorCancelacion;
delete res.dataValues.idEquipo;
delete res.dataValues.Equipo.dataValues.idPrograma;
delete res.dataValues.Equipo.dataValues.idStatus;
delete res.dataValues.Equipo.dataValues.idCarrito;
delete res.dataValues.Equipo.dataValues.updatedAt;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idModulo;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.activo;
return res;
return Prestamo.findOne({
where: { idUsuario, activo: true },
include: [
{
model: Equipo,
include: [
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre'],
},
{ model: Programa },
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'createdAt',
],
});
});
};
module.exports = prestamo;
+17 -12
View File
@@ -21,25 +21,30 @@ const status = async (body) => {
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
attributes: ['idCarrito', 'sobrenombre'],
},
{ model: Programa },
],
attributes: [
'idEquipo',
'numeroSerie',
'numeroInventario',
'sobrenombre',
],
},
],
attributes: [
'idPrestamo',
'activo',
'horaMaxRecoger',
'horaInicio',
'horaFin',
'horaEntrega',
'canceladoUsuario',
'createdAt',
],
}).then(async (res) => {
if (!res) throw new Error('No existe este prestamo.');
delete res.dataValues.idUsuario;
delete res.dataValues.idOperadorEntrega;
delete res.dataValues.idOperadorRegreso;
delete res.dataValues.idOperadorCancelacion;
delete res.dataValues.idEquipo;
delete res.dataValues.Equipo.dataValues.idPrograma;
delete res.dataValues.Equipo.dataValues.idStatus;
delete res.dataValues.Equipo.dataValues.idCarrito;
delete res.dataValues.Equipo.dataValues.updatedAt;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.idModulo;
delete res.dataValues.Equipo.dataValues.Carrito.dataValues.activo;
if (!res.activo) {
if (!res.horaEntrega)
return {
+49 -60
View File
@@ -10,70 +10,59 @@ const escolares = async (body) => {
return Usuario.findOne({
where: { usuario: numeroCuenta },
include: [{ model: Carrera }, { model: TipoUsuario }],
})
.then((res) => {
if (!res) {
let usuario = { Carrera: {} };
let esAlumno = false;
attributes: ['idUsuario', 'password'],
}).then((res) => {
if (!res) {
let usuario = { Carrera: null };
let esAlumno = false;
return obtenerAlumno(numeroCuenta)
.then(async (res) => {
if (!res) return obtenerProfesor(numeroCuenta);
esAlumno = true;
return res;
})
.then(async (res) => {
usuario = res;
if (!usuario)
throw new Error(
'Este número de cuenta o de trabajador no existe.'
);
if (esAlumno) {
if (usuario.inscrito != 'SI')
throw new Error('Este alumno no esta inscrito este semestre.');
await Carrera.findOne({
where: { carrera: usuario.carrera },
})
.then((res) => {
if (!res) return Carrera.create({ carrera: usuario.carrera });
return res;
})
.then((res) => {
usuario.Carrera = res;
usuario.nombre = usuario.nombre.trim();
usuario.idTipoUsuario = 4;
});
} else {
usuario.idTipoUsuario = 3;
usuario.nombre = `${usuario.ApPaterno.trim()} ${usuario.ApMaterno.trim()} ${usuario.Nombre.trim()}`;
}
return Usuario.create({
usuario: numeroCuenta,
nombre: usuario.nombre,
idCarrera: usuario.Carrera ? usuario.Carrera.idCarrera : null,
idTipoUsuario: usuario.idTipoUsuario,
return obtenerAlumno(numeroCuenta)
.then(async (res) => {
if (!res) return obtenerProfesor(numeroCuenta);
esAlumno = true;
return res;
})
.then(async (res) => {
usuario = res;
if (!usuario)
throw new Error('Este número de cuenta o de trabajador no existe.');
if (esAlumno) {
if (usuario.inscrito != 'SI')
throw new Error('Este alumno no esta inscrito este semestre.');
usuario.nombre = usuario.nombre.trim();
usuario.idTipoUsuario = 4;
usuario.Carrera = await Carrera.findOne({
where: { carrera: usuario.carrera },
}).then((res) => {
if (!res) return Carrera.create({ carrera: usuario.carrera });
return res;
});
} else {
usuario.idTipoUsuario = 3;
usuario.nombre = `${usuario.ApPaterno.trim()} ${usuario.ApMaterno.trim()} ${usuario.Nombre.trim()}`;
}
return Usuario.create({
usuario: numeroCuenta,
nombre: usuario.nombre,
idCarrera: usuario.Carrera ? usuario.Carrera.idCarrera : null,
idTipoUsuario: usuario.idTipoUsuario,
});
})
.then((res) =>
Usuario.findOne({
where: { usuario: numeroCuenta },
include: [{ model: Carrera }, { model: TipoUsuario }],
attributes: ['idUsuario', 'usuario', 'nombre'],
})
.then((res) =>
Usuario.findOne({
where: { usuario: numeroCuenta },
include: [{ model: Carrera }, { model: TipoUsuario }],
})
);
} else if (res.password)
throw new Error('Este número de cuenta ya fue registrado.');
return res;
})
.then((res) => {
delete res.dataValues.password;
delete res.dataValues.telefono;
delete res.dataValues.telefono;
delete res.dataValues.multa;
delete res.dataValues.idTipoUsuario;
delete res.dataValues.idCarrera;
return res;
);
} else if (res.password)
throw new Error('Este número de cuenta ya fue registrado.');
return Usuario.findOne({
where: { usuario: numeroCuenta },
include: [{ model: Carrera }, { model: TipoUsuario }],
attributes: ['idUsuario', 'usuario', 'nombre'],
});
});
};
module.exports = escolares;
+21 -20
View File
@@ -1,7 +1,7 @@
const { Op } = require('sequelize');
const { crearTokenUsuario } = require('../../middleware/autentificacion');
const helperPath = '../../helper';
const encriptar = require(`${helperPath}/encriptar`);
const { comparar } = require(`${helperPath}/encriptar`);
const validar = require(`${helperPath}/validar`);
const dbPath = '../../db/tablas';
const Usuario = require(`${dbPath}/Usuario`);
@@ -18,25 +18,26 @@ const login = async (body) => {
return Usuario.findOne({
where: { usuario, password: { [Op.ne]: null } },
include: [{ model: TipoUsuario }],
}).then((res) => {
if (!res) throw new Error('No existe este usuario.');
if (!res.activo) throw new Error('Este usuario fue desactivado.');
if (encriptar.comparar(password, res.password)) {
delete res.dataValues.password;
delete res.dataValues.idCarrera;
delete res.dataValues.idTipoUsuario;
delete res.dataValues.telefono;
return {
Usuario: res,
token: crearTokenUsuario({
idUsuario: res.idUsuario,
idTipoUsuario: res.TipoUsuario.idTipoUsuario,
}),
};
}
throw new Error('Usuario o contraseña no válidos.');
});
attributes: ['idUsuario', 'password', 'multa', 'activo'],
})
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
if (!res.activo) throw new Error('Este usuario fue desactivado.');
if (!comparar(password, res.password))
throw new Error('La contraseña es incorrecta.');
return Usuario.findOne({
where: { usuario },
include: [{ model: TipoUsuario }],
attributes: ['idUsuario', 'usuario', 'nombre', 'multa', 'activo'],
});
})
.then((res) => ({
Usuario: res,
token: crearTokenUsuario({
idUsuario: res.idUsuario,
idTipoUsuario: res.TipoUsuario.idTipoUsuario,
}),
}));
};
module.exports = login;
+8 -4
View File
@@ -11,12 +11,16 @@ const usuario = async (body) => {
return Usuario.findOne({
where: { usuario, password: { [Op.ne]: null } },
include: [{ model: TipoUsuario }, { model: Carrera }],
attributes: [
'idUsuario',
'usuario',
'nombre',
'telefono',
'multa',
'activo',
],
}).then((res) => {
if (!res) throw new Error('No existe este usuario.');
delete res.dataValues.password;
delete res.dataValues.idTipoUsuario;
if (!res.idCarrera) delete res.dataValues.Carrera;
delete res.dataValues.idCarrera;
return res;
});
};
+9 -9
View File
@@ -19,17 +19,17 @@ const usuarios = async (body) => {
return Usuario.findAndCountAll({
where: { password: { [Op.ne]: null } },
include: [{ model: TipoUsuario }, { model: Carrera }],
attributes: [
'idUsuario',
'usuario',
'nombre',
'telefono',
'multa',
'activo',
],
limit: 25,
offset: 25 * (pagina - 1),
}).then((res) => {
for (let i = 0; i < res.rows.length; i++) {
delete res.rows[i].dataValues.password;
delete res.rows[i].dataValues.idTipoUsuario;
delete res.rows[i].dataValues.idCarrera;
if (!res.rows[i].Carrera) delete res.rows[i].dataValues.Carrera;
}
return { count: res.count, usuarios: res.rows };
});
}).then((res) => ({ count: res.count, usuarios: res.rows }));
};
module.exports = usuarios;