diff --git a/package-lock.json b/package-lock.json index fd29a28..7da98b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -275,6 +275,14 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "requires": { + "dicer": "0.3.0" + } + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -589,6 +597,14 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "requires": { + "streamsearch": "0.1.2" + } + }, "dot-prop": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", @@ -720,6 +736,14 @@ } } }, + "express-fileupload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.2.0.tgz", + "integrity": "sha512-oe4WpKcSppXnl5peornawWUa6tKmIc1/kJxMNRGJR1A0v4zyLL6VsFR6wZ8P2a4Iq3aGx8xae3Vlr+MOMQhFPw==", + "requires": { + "busboy": "^0.3.1" + } + }, "faker": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/faker/-/faker-5.1.0.tgz", @@ -2002,6 +2026,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", diff --git a/package.json b/package.json index c05ae96..bfa6ec1 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", + "express-fileupload": "^1.2.0", "jsonwebtoken": "^8.5.1", "log-symbols": "^4.0.0", "mariadb": "^2.4.2", diff --git a/server/controller/upload/post.js b/server/controller/upload/post.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/upload.js b/server/routes/upload.js new file mode 100644 index 0000000..7123f87 --- /dev/null +++ b/server/routes/upload.js @@ -0,0 +1,23 @@ +const express = require("express"); +const fileUpload = require("express-fileupload"); + +const post = require("../controller/upload/post"); +const app = express(); + +const { verifyToken, verifyAdmin } = require('../middlewares/authentication'); + +const route = "/upload"; + +app.use(fileUpload({ useTempFiles: true })); + +app.post(route, verifyToken, (req, res) => { + return post(req) + .then(data => { + res.status(200).json(data); + }) + .catch(err => { + res.status(400).json({ err: err.message }); + }); +}); + +module.exports = app;