Image upload API

This commit is contained in:
rift 2024-08-20 19:38:43 -05:00
parent 52d47b4247
commit 948611f434
11 changed files with 193 additions and 4 deletions

View file

@ -5,6 +5,7 @@ import wisp from "wisp-server-node";
import { Sequelize, DataTypes } from "sequelize";
import { fileURLToPath } from "url";
import { handler as ssrHandler } from "./dist/server/entry.mjs";
import multer from "multer";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
@ -18,6 +19,17 @@ const sequelize = new Sequelize("database", "user", "password", {
storage: "database.sqlite",
});
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "database_assets/image");
},
filename: function (req, file, cb) {
cb(null, file.originalname); //Appending extension
},
});
var upload = multer({ storage: storage });
const catalog_assets = sequelize.define("catalog_assets", {
package_name: {
type: DataTypes.TEXT,
@ -136,6 +148,22 @@ app.get("/api/packages/:package", async (request, reply) => {
}
});
// This API is responsible for image uploads
// PSK authentication required. (NOT YET IMPLEMENTED!!!!!!!!!!)
app.post("/upload", upload.single("file"), (req, res) => {
console.log("Request file:", req.file);
if (!req.file) {
return res.status(400).json({ error: "No file uploaded" });
}
console.log(req.file.originalname);
res.json({
message: "File uploaded successfully",
filename: req.file.originalname,
});
});
app.use("/images/", express.static("./database_assets/image"));
app.use("/videos/", express.static("./database_assets/video"));
app.use("/styles/", express.static("./database_assets/styles"));
@ -179,10 +207,10 @@ server.on("request", (req, res) => {
});
server.on("upgrade", (req, socket, head) => {
if (req.url.endsWith("/wisp/")) {
wisp.routeRequest(req, socket, head);
}
})
if (req.url.endsWith("/wisp/")) {
wisp.routeRequest(req, socket, head);
}
});
server.listen({
port: 8080,