fix: also remove image file when deleting the announcement

This commit is contained in:
redglow
2026-06-21 14:54:24 +02:00
parent 961cc6e5ae
commit 7edb5f4957
+15 -1
View File
@@ -1,11 +1,15 @@
import { unlink } from "node:fs/promises";
import path from "node:path";
import express from "express"; import express from "express";
import multer from "multer"; import multer from "multer";
import ViteExpress from "vite-express"; import ViteExpress from "vite-express";
import z from "zod"; import z from "zod";
import { db } from "./db/database.js"; import { db } from "./db/database.js";
const baseUploadsFolder = "uploads/";
const upload = multer({ const upload = multer({
dest: "uploads/", dest: baseUploadsFolder,
}); });
const app = express(); const app = express();
@@ -55,10 +59,20 @@ app.get("/api/announcements", async (_, res) => {
app.delete("/api/announcements/:announcementId", async (req, res) => { app.delete("/api/announcements/:announcementId", async (req, res) => {
const { announcementId } = DeleteInput.parse(req.params); const { announcementId } = DeleteInput.parse(req.params);
const { image } = await db
.selectFrom("announcements")
.select("image")
.where("id", "=", announcementId)
.executeTakeFirstOrThrow();
await db await db
.deleteFrom("announcements") .deleteFrom("announcements")
.where("id", "=", announcementId) .where("id", "=", announcementId)
.execute(); .execute();
await unlink(path.join(baseUploadsFolder, image));
res.status(204).send(); res.status(204).send();
}); });