const helperPath = '../../helper'; const drive = require(`${helperPath}/drive`); const validar = require(`${helperPath}/validar`); const Servicio = require('../../db/tablas/Servicio'); const cartaTermino = async (body, file) => { const idServicio = validar.validarNumeroEntero( body.idServicio, 'id servicio' ); const path = `./server/uploads/${validar.validacionBasicaStr( file, 'archivo', true, 1000 )}`; return Servicio.findOne({ where: { idServicio }, }) .then((res) => { if (!res) throw new Error('Este servicio no existe.'); if (res.cartaTermino) throw new Error('Ya se subio la Carta de Termino.'); switch (res.idStatus) { case 4: case 8: return drive.uploadFile( path, `Carta_Termino.pdf`, 'application/pdf', res.carpeta ); //return "carta de termino" case 1: case 2: case 3: throw new Error( 'Aun no se puede subir la Carta de Termino a este Servicio Social.' ); case 5: throw new Error( 'Este Servicio Social ya paso la fase de subir la Carta de Termino.' ); case 6: throw new Error('Este Servicio Social ya finalizó.'); case 7: case 9: throw new Error( 'Este Servicio Social se encuentra rechazado. No se puede avanzar hasta que se corriga lo necesario.' ); case 10: throw new Error( 'Este Servicio Social esta cancelado. Comunicate con COESI para solucionar tu problema.' ); default: throw new Error('Id status no valido.'); } }) .then((res) => Servicio.update({ cartaTermino: res }, { where: { idServicio } }) ) .then((res) => validar.validarPreTermino(idServicio)) .then((res) => ({ message: `Se subio la Carta de Termino correctamente. ${res}`, })); }; module.exports = cartaTermino;