From 7edb5f4957d5dcb6066e181ddc6e1aedbfbb4158 Mon Sep 17 00:00:00 2001 From: redglow Date: Sun, 21 Jun 2026 14:54:24 +0200 Subject: [PATCH] fix: also remove image file when deleting the announcement --- src/server/main.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/server/main.ts b/src/server/main.ts index f4e89f8..d43d52e 100644 --- a/src/server/main.ts +++ b/src/server/main.ts @@ -1,11 +1,15 @@ +import { unlink } from "node:fs/promises"; +import path from "node:path"; import express from "express"; import multer from "multer"; import ViteExpress from "vite-express"; import z from "zod"; import { db } from "./db/database.js"; +const baseUploadsFolder = "uploads/"; + const upload = multer({ - dest: "uploads/", + dest: baseUploadsFolder, }); const app = express(); @@ -55,10 +59,20 @@ app.get("/api/announcements", async (_, res) => { app.delete("/api/announcements/:announcementId", async (req, res) => { const { announcementId } = DeleteInput.parse(req.params); + + const { image } = await db + .selectFrom("announcements") + .select("image") + .where("id", "=", announcementId) + .executeTakeFirstOrThrow(); + await db .deleteFrom("announcements") .where("id", "=", announcementId) .execute(); + + await unlink(path.join(baseUploadsFolder, image)); + res.status(204).send(); });