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 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();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user