From b9278b56df40023778ac48e20845fb239fbec6c7 Mon Sep 17 00:00:00 2001 From: Stephan <57194608+stephan418@users.noreply.github.com> Date: Mon, 24 Oct 2022 20:36:42 +0200 Subject: [PATCH] Fix 404 error messages for HEAD and GET media + Add unnecessary console.error when successfully uploading media --- src/Controllers/media.controller.ts | 11 ++++++++++- src/Routes/media.routes.ts | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Controllers/media.controller.ts b/src/Controllers/media.controller.ts index 57f231e..163835d 100644 --- a/src/Controllers/media.controller.ts +++ b/src/Controllers/media.controller.ts @@ -11,6 +11,7 @@ import { generateInvalidBodyError, DataType } from "./common"; import { unlink } from "fs/promises"; import ForwardableError from "../Middleware/error/ForwardableError"; import { table } from "console"; +import logger from "../Middleware/error/logger"; require("express-async-errors"); @@ -110,7 +111,11 @@ export const uploadImage = async (req: Request, res: Response) => { }); if (!fs.existsSync("media/" + fileName)) { - file.mv("media/" + fileName, console.error); + file.mv("media/" + fileName, (err) => { + if (err) { + logger.error(err); + } + }); } return res.status(201).json({ @@ -188,6 +193,10 @@ export const deleteMedia = async (req: Request, res: Response) => { } }; +export const mediaNotFoundHandler = (req: Request<{ pid: string }>, res: Response) => { + throw new NotFoundError("media", req.params.pid); +}; + export const linkMedia = async (req: Request<{ pid: string }, {}, { mediaPid: string }>, res: Response) => { if (req.auth?.permission_level != "ELEVATED") { res.status(403).json(createInsufficientPermissionsError()); diff --git a/src/Routes/media.routes.ts b/src/Routes/media.routes.ts index 6785f7b..71d4365 100644 --- a/src/Routes/media.routes.ts +++ b/src/Routes/media.routes.ts @@ -6,6 +6,7 @@ import { getAllMedia, getMediaMeta, linkMedia, + mediaNotFoundHandler, unlinkMedia, uploadImage, } from "../Controllers/media.controller"; @@ -26,6 +27,9 @@ router.get("/:pid/meta", getMediaMeta); router.delete("/:pid", requireAuthentication, deleteMedia); +router.get("/:pid", mediaNotFoundHandler); +router.head("/:pid", mediaNotFoundHandler); + eventRouter.post<"/:pid/media", { pid: string }>("/:pid/media", requireAuthentication, linkMedia); eventRouter.delete<"/:pid/media/:mediaPid", { pid: string; mediaPid: string }>(