const validar = require('../../helper/validar'); const drive = require('../../helper/drive'); const Servicio = require('../../db/tablas/Servicio'); const cartaTermino = async (body, file) => { const idServicio = validar.validarId(body.idServicio); const path = `./server/uploads/${validar.validar(file, 'El archivo', 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 ); 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.' ); } }) .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;