42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const express = require("express");
|
|
const { validateUserToken, handleError, newError } = require("../services/services.js");
|
|
const { uploadBlob } = require("../services/oceanServices.js");
|
|
// FileStorage
|
|
const multer = require("multer");
|
|
|
|
var router = express.Router();
|
|
var storage = multer.memoryStorage();
|
|
const uploadStrategy = multer({
|
|
storage: storage,
|
|
fileFilter: function (req, file, cb) {
|
|
if (file.mimetype !== "image/png" && file.mimetype !== "image/jpeg") {
|
|
return cb(null, false);
|
|
}
|
|
cb(null, true);
|
|
},
|
|
limits: { fileSize: 2000000 }
|
|
}).single("menuiImage");
|
|
|
|
// POST
|
|
|
|
router.post("/", (req, res) => {
|
|
uploadStrategy(req, res, async (err) => {
|
|
if (err) {
|
|
if (err.code === "LIMIT_FILE_SIZE") {
|
|
handleError(newError("File too big", 413), res);
|
|
} else {
|
|
handleError(newError("Unknown error...", 500), res);
|
|
}
|
|
} else {
|
|
try {
|
|
const token = req.headers["x-auth-token"];
|
|
validateUserToken(token);
|
|
await uploadBlob(req, res);
|
|
} catch (error) {
|
|
handleError(error, res)
|
|
}
|
|
}
|
|
})
|
|
});
|
|
|
|
module.exports = router; |