const fs = require('fs'); const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'server/uploads' }); const { verificaToken } = require('../middleware/autentificacion'); const route = '/servicio'; const nuevo = require('../controller/Servicio/nuevo'); const serviciosAdmin = require('../controller/Servicio/serviciosAdmin'); const serviciosResponsable = require('../controller/Servicio/serviciosResponsable'); const admin = require('../controller/Servicio/admin'); const alumno = require('../controller/Servicio/alumno'); const cancelar = require('../controller/Servicio/cancelar'); const registro = require('../controller/Servicio/registro'); const registroValidado = require('../controller/Servicio/registroValidado'); const cartaAceptacion = require('../controller/Servicio/cartaAceptacion'); const cartaTermino = require('../controller/Servicio/cartaTermino'); const informeGlobal = require('../controller/Servicio/informeGlobal'); const liberacion = require('../controller/Servicio/liberacion'); const rechazarAceptacion = require('../controller/Servicio/rechazarAceptacion'); const rechazarTermino = require('../controller/Servicio/rechazarTermino'); const rechazarInforme = require('../controller/Servicio/rechazarInforme'); const update = require('../controller/Servicio/update'); const eliminarArchivo = (filename) => { fs.unlinkSync(`./server/uploads/${filename}`); }; app.post( `${route}/nuevo`, // verificaToken, upload.single('cartaAceptacion'), (req, res) => { return nuevo(JSON.parse(req.body.alumno), req.file.filename) .then((data) => { res.status(201).json(data); }) .catch((err) => { if (req.file.filename) eliminarArchivo(req.file.filename); // fs.unlinkSync(`./server/uploads/${req.file.filename}`); res.status(400).json({ message: err.message }); }); } ); app.get(`${route}/servicios_admin`, verificaToken, (req, res) => { return serviciosAdmin(req.query) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.get(`${route}/servicios_responsable`, verificaToken, (req, res) => { return serviciosResponsable(req.query) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.get(`${route}/admin`, verificaToken, (req, res) => { return admin(req.query) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.get(`${route}/alumno`, verificaToken, (req, res) => { return alumno(req.query) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put(`${route}/cancelar`, verificaToken, (req, res) => { return cancelar(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put(`${route}/registro`, verificaToken, (req, res) => { return registro(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put(`${route}/registro_validado`, verificaToken, (req, res) => { return registroValidado(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put( `${route}/carta_aceptacion`, // verificaToken, upload.single('cartaAceptacion'), (req, res) => { return cartaAceptacion(JSON.parse(req.body.data), req.file.filename) .then((data) => { res.status(200).json(data); }) .catch((err) => { if (req.file.filename) eliminarArchivo(req.file.filename); // fs.unlinkSync(`./server/uploads/${req.file.filename}`); res.status(400).json({ message: err.message }); }); } ); app.put( `${route}/carta_termino`, // verificaToken, upload.single('cartaTermino'), (req, res) => { return cartaTermino(JSON.parse(req.body.data), req.file.filename) .then((data) => { res.status(200).json(data); }) .catch((err) => { if (req.file.filename) eliminarArchivo(req.file.filename); // fs.unlinkSync(`./server/uploads/${req.file.filename}`); res.status(400).json({ message: err.message }); }); } ); app.put( `${route}/informe_global`, // verificaToken, upload.single('informeGlobal'), (req, res) => { return informeGlobal(JSON.parse(req.body.data), req.file.filename) .then((data) => { res.status(200).json(data); }) .catch((err) => { if (req.file.filename) eliminarArchivo(req.file.filename); // fs.unlinkSync(`./server/uploads/${req.file.filename}`); res.status(400).json({ message: err.message }); }); } ); app.put(`${route}/liberacion`, verificaToken, (req, res) => { return liberacion(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put(`${route}/rechazar_aceptacion`, verificaToken, (req, res) => { return rechazarAceptacion(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put(`${route}/rechazar_termino`, verificaToken, (req, res) => { return rechazarTermino(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put(`${route}/rechazar_informe`, verificaToken, (req, res) => { return rechazarInforme(req.body) .then((data) => { res.status(200).json(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.put( `${route}/update`, // verificaToken , upload.fields([ { name: 'cartaAceptacion', maxCount: 1 }, { name: 'cartaTermino', maxCount: 1 }, { name: 'informeGlobal', maxCount: 1 }, ]), (req, res) => { return update(JSON.parse(req.body.data), req.files) .then((data) => { res.status(200).json(data); }) .catch((err) => { try { if (req.files['cartaAceptacion'][0].filename) eliminarArchivo(req.files['cartaAceptacion'][0].filename); } catch (err) {} try { if (req.files['cartaTermino'][0].filename) eliminarArchivo(req.files['cartaTermino'][0].filename); } catch (err) {} try { if (req.files['informeGlobal'][0].filename) eliminarArchivo(req.files['informeGlobal'][0].filename); } catch (err) {} res.status(400).json({ message: err.message }); }); } ); module.exports = app;