fix: also remove image file when deleting the announcement
This commit is contained in:
+15
-1
@@ -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();
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user