endpoint recuperar prestamo

This commit is contained in:
Lemuel Marquez
2021-04-29 22:17:40 -05:00
parent bb160cdc82
commit b92a95ac2e
7 changed files with 160 additions and 13 deletions
+2 -2
View File
@@ -31,12 +31,12 @@ const pedir = async (body) => {
})
.then((res) => {
if (!res && idPrograma) {
throw new Error('No existe ese programa.');
throw new Error('No existe este programa.');
}
return Usuario.findOne({ where: { idUsuario } });
})
.then((res) => {
if (!res) throw new Error('Ese usuario no existe.');
if (!res) throw new Error('No existe este usuario.');
if (res.multa)
throw new Error(
'Este usuario tiene una multa activa, no puede solicitar un equipo de computo.'
+57
View File
@@ -0,0 +1,57 @@
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 Operador = require(`${dbPath}/Operador`);
const Prestamo = require(`${dbPath}/Prestamo`);
const Programa = require(`${dbPath}/Programa`);
const TipoCarrito = require(`${dbPath}/TipoCarrito`);
const TipoUsuario = require(`${dbPath}/TipoUsuario`);
const Usuario = require(`${dbPath}/Usuario`);
const prestamo = async (body) => {
const idPrestamo = validar.validarId(body.idPrestamo);
return Prestamo.findOne({
where: { idPrestamo },
include: [
{
model: Equipo,
include: [
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
},
{ model: Programa },
],
},
{ model: Usuario, include: [{ model: TipoUsuario }, { model: Carrera }] },
{ model: Operador, as: 'OperadorRegreso' },
{ model: Operador, as: 'OperadorEntrega' },
],
}).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.idEquipo;
delete res.dataValues.Equipo.dataValues.idPrograma;
delete res.dataValues.Equipo.dataValues.idStatus;
delete res.dataValues.Equipo.dataValues.idCarrito;
delete res.dataValues.Equipo.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Equipo.Carrito.dataValues.idModulo;
delete res.dataValues.Usuario.dataValues.idTipoUsuario;
delete res.dataValues.Usuario.dataValues.idCarrera;
delete res.dataValues.Usuario.dataValues.password;
if (!res.Equipo.Programa) delete res.dataValues.Equipo.dataValues.Programa;
if (!res.OperadorEntrega) delete res.dataValues.OperadorEntrega;
else delete res.dataValues.OperadorEntrega.dataValues.password;
if (!res.OperadorRegreso) delete res.dataValues.OperadorRegreso;
else delete res.dataValues.OperadorRegreso.dataValues.password;
return res;
});
};
module.exports = prestamo;
@@ -0,0 +1,43 @@
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 Prestamo = require(`${dbPath}/Prestamo`);
const TipoCarrito = require(`${dbPath}/TipoCarrito`);
const prestamo = async (body) => {
const idUsuario = validar.validarId(body.idUsuario);
return Prestamo.findOne({
where: { idUsuario, activo: true },
include: [
{
model: Equipo,
include: [
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
},
],
},
],
}).then((res) => {
if (!res) throw new Error('Este usuario no tiene un prestamo activo.');
delete res.dataValues.idUsuario;
delete res.dataValues.idOperadorEntrega;
delete res.dataValues.idOperadorRegreso;
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.Carrito.dataValues.idTipoCarrito;
delete res.dataValues.Equipo.Carrito.dataValues.idModulo;
// delete res.dataValues.Usuario.dataValues.idTipoUsuario;
// delete res.dataValues.Usuario.dataValues.idCarrera;
// delete res.dataValues.Usuario.dataValues.password;
return res;
});
};
module.exports = prestamo;
+26 -9
View File
@@ -1,12 +1,16 @@
const validar = require('../../helper/validar');
const dbPath = '../../db/tablas';
const Prestamo = require(`${dbPath}/Prestamo`);
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 TipoCarrito = require(`${dbPath}/TipoCarrito`);
const recoger = async (body) => {
const idPrestamo = validar.validarId(body.idPrestamo);
const idOperadorEntrega = validar.validarId(body.idOperadorEntrega);
let idEquipo;
return Operador.findOne({ where: { idOperador: idOperadorEntrega } })
.then((res) => {
@@ -21,18 +25,31 @@ const recoger = async (body) => {
if (!res.activo) throw new Error('Este prestamo ya no esta activo.');
if (res.Equipo.enUso)
throw new Error('Ya se entrego el equipo al usuario.');
return Equipo.update(
{ enUso: true },
{ where: { idEquipo: res.Equipo.idEquipo } }
);
idEquipo = res.Equipo.idEquipo;
return Equipo.update({ enUso: true }, { where: { idEquipo } });
})
.then((res) => {
Prestamo.update({ idOperadorEntrega }, { where: { idPrestamo } });
})
.then((res) => ({
message:
'Se ha activado correctamente el equio de computo. Puedes llevartelo.',
}));
.then((res) => {
return Equipo.findOne({
where: { idEquipo },
include: [
{
model: Carrito,
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;
});
};
module.exports = recoger;
+1 -2
View File
@@ -23,7 +23,6 @@ const recoger = async (body) => {
if (!res.activo) throw new Error('Este prestamo ya no esta activo.');
if (!res.Equipo.enUso)
throw new Error('Aun no se ha entregado el equipo al usuario.');
if (res) throw new Error('.');
return Equipo.update(
{ enUso: false, apartado: false },
{ where: { idEquipo: res.Equipo.idEquipo } }
@@ -36,7 +35,7 @@ const recoger = async (body) => {
);
})
.then((res) => ({
message: 'Se ha entregado correctamente el equio de computo.',
message: 'Se ha regresado correctamente el equio de computo.',
}));
};
+31
View File
@@ -10,6 +10,8 @@ const historialUsuario = require(`${controllerPath}/historialUsuario`);
const pedir = require(`${controllerPath}/pedir`);
const recoger = require(`${controllerPath}/recoger`);
const regresar = require(`${controllerPath}/regresar`);
const prestamo = require(`${controllerPath}/prestamo`);
const prestamoUsuario = require(`${controllerPath}/prestamoUsuario`);
app.post(
`${route}/pedir`,
@@ -108,4 +110,33 @@ app.get(
});
}
);
app.get(
`${route}`,
// verificaToken,
(req, res) => {
return prestamo(req.query)
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
}
);
app.get(
`${route}/prestamo_usuario`,
// verificaToken,
(req, res) => {
return prestamoUsuario(req.query)
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
}
);
module.exports = app;