const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'server/uploads' }); const { verificaToken } = require('../middleware/autentificacion'); const { eliminarArchivo } = require('../helper/helper'); const route = '/servicio'; const controllerPath = '../controller/Servicio'; const nuevo = require(`${controllerPath}/nuevo`); const serviciosAdmin = require(`${controllerPath}/serviciosAdmin`); const serviciosResponsable = require(`${controllerPath}/serviciosResponsable`); const admin = require(`${controllerPath}/admin`); const alumno = require(`${controllerPath}/alumno`); const cancelar = require(`${controllerPath}/cancelar`); const registro = require(`${controllerPath}/registro`); const registroValidado = require(`${controllerPath}/registroValidado`); const cartaAceptacion = require(`${controllerPath}/cartaAceptacion`); const cartaTermino = require(`${controllerPath}/cartaTermino`); const informeGlobal = require(`${controllerPath}/informeGlobal`); const liberacion = require(`${controllerPath}/liberacion`); const rechazarAceptacion = require(`${controllerPath}/rechazarAceptacion`); const rechazarTermino = require(`${controllerPath}/rechazarTermino`); const rechazarInforme = require(`${controllerPath}/rechazarInforme`); const update = require(`${controllerPath}/update`); const reporte = require(`${controllerPath}/reporte`); const gustavoBazPrada = require(`${controllerPath}/gustavoBazPrada`); // POST 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); res.status(400).json({ message: err.message }); }); } ); // GET 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.get(`${route}/gustavo_baz_prada`, verificaToken, (req, res) => { return gustavoBazPrada(req.query) .then((data) => { res.download(data); }) .catch((err) => { res.status(400).json({ message: err.message }); }); }); app.get(`${route}/reporte`, verificaToken, (req, res) => { return reporte(req.query) .then((data) => { res.download(data); }) .catch((err) => { 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 }); }); }); // PUT 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}/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); 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); 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); 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}/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}/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_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}/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}/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;