diff --git a/package-lock.json b/package-lock.json index 5764465..9ae6ac0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", + "fs": "^0.0.1-security", "jsonwebtoken": "^8.5.1", "mariadb": "^2.5.3", "moment": "^2.29.1", @@ -946,6 +947,11 @@ "node": ">= 0.6" } }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -3449,6 +3455,11 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", diff --git a/package.json b/package.json index 08718c6..6b54786 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", + "fs": "^0.0.1-security", "jsonwebtoken": "^8.5.1", "mariadb": "^2.5.3", "moment": "^2.29.1", diff --git a/public/images/573bc1deb037d4f14d0962b041c8691e b/public/images/573bc1deb037d4f14d0962b041c8691e new file mode 100644 index 0000000..7c05c1a Binary files /dev/null and b/public/images/573bc1deb037d4f14d0962b041c8691e differ diff --git a/public/images/603ed64edb4fc4f70cbccc994dd0db25 b/public/images/603ed64edb4fc4f70cbccc994dd0db25 new file mode 100644 index 0000000..7c05c1a Binary files /dev/null and b/public/images/603ed64edb4fc4f70cbccc994dd0db25 differ diff --git a/public/images/dc883d207ce3e51b480b948c58af5fc4 b/public/images/dc883d207ce3e51b480b948c58af5fc4 new file mode 100644 index 0000000..7c05c1a Binary files /dev/null and b/public/images/dc883d207ce3e51b480b948c58af5fc4 differ diff --git a/server/controller/Usuario/inscripcionUsuario.js b/server/controller/Usuario/inscripcionUsuario.js index 8279d23..d5a8015 100644 --- a/server/controller/Usuario/inscripcionUsuario.js +++ b/server/controller/Usuario/inscripcionUsuario.js @@ -1,13 +1,15 @@ const moment = require('moment'); +const fs = require('fs'); const { validarNumeroEntero, validarNumeroCuenta, } = require('../../helper/validar'); +const { eliminarArchivo } = require('../../helper/helper'); const dbPath = '../../db/tablas'; const Carrera = require(`${dbPath}/Carrera`); const Inscripcion = require(`${dbPath}/Inscripcion`); -const inscripcion = async (body) => { +const inscripcion = async (body, file) => { const ahora = moment(); const idUsuario = validarNumeroEntero(body.idUsuario, 'id Usuario', true); const idArea = validarNumeroEntero(body.idArea, 'id Area', true); @@ -34,10 +36,16 @@ const inscripcion = async (body) => { }); }); }) - .then((res) => ({ - message: '¡La inscripción se realizo de manera correcta!', - })) + .then( + (res) => ( + fs.renameSync(file.path, file.path + '.' + file.mimetype.split('/')[1]), + { + message: '¡La inscripción se realizo de manera correcta!', + } + ) + ) .catch((err) => { + eliminarArchivo(file.path); throw new Error('No es posible realizar esta inscripción. ' + err); }); }; diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js index 2e4892d..566eef0 100644 --- a/server/routes/Usuario.js +++ b/server/routes/Usuario.js @@ -1,10 +1,13 @@ const express = require('express'); const app = express(); +const fs = require('fs'); +const multer = require('multer'); +const upload = multer({ dest: 'tickets/images' }); const { verificaToken } = require('../middleware/autentificacion'); const route = '/Usuario'; const controllerPath = '../controller/Usuario'; const login = require(`${controllerPath}/login`); -const escolares = require(`${controllerPath}/escolares`); +// const escolares = require(`${controllerPath}/escolares`); const inscripciones = require(`${controllerPath}/inscripciones`); const inscripcionUsuario = require(`${controllerPath}/inscripcionUsuario`); @@ -28,8 +31,8 @@ app.get(`${route}/inscripciones`, (req, res) => { }); }); -app.post(`${route}/inscripcionUsuario`, (req, res) => { - return inscripcionUsuario(req.body) +app.post(`${route}/inscripcionUsuario`, upload.single('imagen'), (req, res) => { + return inscripcionUsuario(req.body, req.file) .then((data) => { res.status(200).json(data); }) diff --git a/tickets/images/2b448d2d360528bc442d533a36d0ec9b.png b/tickets/images/2b448d2d360528bc442d533a36d0ec9b.png new file mode 100644 index 0000000..7c05c1a Binary files /dev/null and b/tickets/images/2b448d2d360528bc442d533a36d0ec9b.png differ