2021-01-05 23:59:05 -06:00
|
|
|
const { Op } = require('sequelize');
|
2021-01-05 22:07:31 -06:00
|
|
|
const validar = require('../../helper/validar');
|
|
|
|
|
const Usuario = require('../../db/tablas/Usuario');
|
|
|
|
|
|
|
|
|
|
const responsableUpdate = async (body) => {
|
2022-01-02 15:07:49 -06:00
|
|
|
const idUsuario = validar.validarNumeroEntero(body.idUsuario, 'id usuario');
|
2021-01-14 03:13:37 -06:00
|
|
|
const dataUpdate = {};
|
2021-01-05 22:07:31 -06:00
|
|
|
|
|
|
|
|
return Usuario.findOne({ where: { idUsuario } })
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res)
|
|
|
|
|
throw new Error('No existe este responsable en la base de datos.');
|
|
|
|
|
if (res.idTipoUsuario !== 2)
|
2021-11-29 00:46:38 -06:00
|
|
|
throw new Error('Este usuario no es un responsable de programa.');
|
2021-01-05 22:07:31 -06:00
|
|
|
if (body.correo) {
|
2021-01-05 23:59:05 -06:00
|
|
|
const yaUsado = await Usuario.findOne({
|
|
|
|
|
where: { usuario: body.correo, idUsuario: { [Op.not]: idUsuario } },
|
|
|
|
|
});
|
2021-01-05 22:07:31 -06:00
|
|
|
|
|
|
|
|
if (yaUsado)
|
|
|
|
|
throw new Error(
|
|
|
|
|
'No se puede asignar este correo a esta cuenta porque esta siendo ocupado por otro resposanble.'
|
|
|
|
|
);
|
|
|
|
|
dataUpdate.usuario = validar.validarCorreo(body.correo);
|
|
|
|
|
}
|
2021-01-05 23:59:05 -06:00
|
|
|
if (body.nombre)
|
2022-01-02 15:27:30 -06:00
|
|
|
dataUpdate.nombre = validar.validarTexto(
|
|
|
|
|
body.nombre,
|
|
|
|
|
'nombre',
|
|
|
|
|
true,
|
|
|
|
|
70
|
|
|
|
|
);
|
2021-05-13 14:06:07 -05:00
|
|
|
if (validar.validarObjetoVacio(dataUpdate))
|
2021-01-05 22:07:31 -06:00
|
|
|
throw new Error('No se a envio nada para actualizar.');
|
|
|
|
|
return Usuario.update(dataUpdate, { where: { idUsuario } });
|
|
|
|
|
})
|
2021-01-14 16:02:57 -06:00
|
|
|
.then((res) => ({
|
|
|
|
|
message:
|
|
|
|
|
'Se actualizó la información de este responsable de programas correctamente.',
|
|
|
|
|
}));
|
2021-01-05 22:07:31 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.exports = responsableUpdate;
|