reasignar programas

This commit is contained in:
xXpuma99Xx
2021-11-30 12:18:12 -06:00
parent b30b7ec57b
commit 3cfff170e8
2 changed files with 52 additions and 0 deletions
@@ -0,0 +1,40 @@
const { validarId, validarCorreo } = require('../../helper/validar');
const dbPath = '../../db/tablas';
const Programa = require(`${dbPath}/Programa`);
const Usuario = require(`${dbPath}/Usuario`);
const reasignarProgramas = async (body) => {
const idUsuario = validarId(body.idUsuario);
const correoOtroResponsable = validarCorreo(body.correoOtroResponsable);
let otorResponsable = {};
return Usuario.findOne({
where: { idUsuario },
})
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
if (res.idTipoUsuario != 2)
throw new Error('No es un usuario de tipo responsable');
if (res.usuario === correoOtroResponsable)
throw new Error('Son el mismo usuario.');
return Usuario.findOne({ where: { usuario: correoOtroResponsable } });
})
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
otorResponsable = res;
return Programa.update(
{ idUsuario },
{
where: { idUsuario: otorResponsable.idUsuario },
}
);
})
.then((res) =>
Usuario.destroy({ where: { idUsuario: otorResponsable.idUsuario } })
)
.then((res) => ({
message: `Se elimino correctamente al usuario ${correoOtroResponsable} y se reasigno correctamente sus programas.`,
}));
};
module.exports = reasignarProgramas;
+12
View File
@@ -8,6 +8,7 @@ const controllerPath = '../controller/Programa';
const cargaMasiva = require(`${controllerPath}/cargaMasiva`);
const programasAdmin = require(`${controllerPath}/programasAdmin`);
const programasResponsable = require(`${controllerPath}/programasResponsable`);
const reasignarProgramas = require(`${controllerPath}/reasignarProgramas`);
// POST
app.post(
@@ -30,6 +31,17 @@ app.post(
}
);
// PUT
app.put(`${route}/reasignar_programas`, verificaToken, (req, res) => {
return reasignarProgramas(req.body)
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
});
// GET
app.get(`${route}/programas_admin`, verificaToken, (req, res) => {
return programasAdmin(req.query)