Files
servicio_social_api/server/controller/Usuario/responsableUpdate.js
T
2021-01-05 22:07:31 -06:00

51 lines
1.7 KiB
JavaScript

const validar = require('../../helper/validar');
const Usuario = require('../../db/tablas/Usuario');
const responsableUpdate = async (body) => {
let isObjectEmpty = (obj) => {
for (let key in obj) {
if (obj.hasOwnProperty(key)) return false;
}
return true;
};
let idUsuario = validar.validarId(body.idUsuario);
let dataUpdate = {};
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)
throw new Error('No es un usuaior de tipo responasble.');
if (body.correo) {
let yaUsado = await Usuario.findOne({
where: { usuario: body.correo },
}).then((res) => res);
if (body.correo === res.usuario)
throw new Error('El responable ya tiene ese correo asignado.');
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);
}
if (body.nombre) {
if (body.nombre === res.nombre)
throw new Error('El responable ya tiene ese nombre asignado.');
dataUpdate.nombre = validar.validarTexto(body.nombre, 'el nombre', 70);
}
if (isObjectEmpty(dataUpdate))
throw new Error('No se a envio nada para actualizar.');
return Usuario.update(dataUpdate, { where: { idUsuario } });
})
.then((res) => {
return {
message:
'Se actualizó la información de este responsable de programas correctamente.',
};
});
};
module.exports = responsableUpdate;