const { Op } = require('sequelize'); const validar = require('../../helper/validar'); const Usuario = require('../../db/tablas/Usuario'); const responsableUpdate = async (body) => { const idUsuario = validar.validarId(body.idUsuario); const 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) { const yaUsado = await Usuario.findOne({ where: { usuario: body.correo, idUsuario: { [Op.not]: idUsuario } }, }); 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) dataUpdate.nombre = validar.validarTexto(body.nombre, 'el nombre', 70); if (validar.isObjectEmpty(dataUpdate)) throw new Error('No se a envio nada para actualizar.'); return Usuario.update(dataUpdate, { where: { idUsuario } }); }) .then((res) => ({ message: 'Se actualizó la información de este responsable de programas correctamente.', })); }; module.exports = responsableUpdate;