From 734acbab382677ac4cdce38becdb72585458a3cb Mon Sep 17 00:00:00 2001 From: Stephan <57194608+stephan418@users.noreply.github.com> Date: Sun, 15 May 2022 12:04:27 +0200 Subject: [PATCH] Fix and comment code for linking media --- src/Controllers/discipline.controller.ts | 2 +- src/Controllers/event.controller.ts | 10 +++++++++- src/Controllers/media.controller.ts | 10 ++++------ src/Controllers/role_schema.controller.ts | 2 +- src/Routes/event.routes.ts | 8 ++++++-- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/Controllers/discipline.controller.ts b/src/Controllers/discipline.controller.ts index d6451bb..73ce9d1 100644 --- a/src/Controllers/discipline.controller.ts +++ b/src/Controllers/discipline.controller.ts @@ -216,7 +216,7 @@ export const addVisual = async (req: Request, res: return res.status(200).json({ type: "success", - payload: { discipline } + payload: { } }) }; diff --git a/src/Controllers/event.controller.ts b/src/Controllers/event.controller.ts index 6e9ba7c..b46424d 100644 --- a/src/Controllers/event.controller.ts +++ b/src/Controllers/event.controller.ts @@ -11,6 +11,7 @@ export const getAllEvents = async (req: Request, res: Response) => { name: true, briefDescription: true, fullDescription: true, + visual: {select: {pid: true, description: true}}, date: true, pid: true, id: false, @@ -48,6 +49,7 @@ export const getEvent = async (req: Request, res: Response) => { date: true, pid: true, id: false, + visual: {select: {pid: true, description: true}} }, }); @@ -149,6 +151,8 @@ export const deleteEvent = (req: Request, res: Response) } }; +// REVIEW: This code **will** need to be de-duplicated + interface visualParams { eventPid: string; } @@ -163,6 +167,10 @@ export const addVisual = async (req: Request, res: } const { eventPid } = req.params; + + if (typeof req.body.mediaPid !== "string") { + res.status(400).json(generateInvalidBodyError({mediaPid: DataType.STRING})); + } const event = await prisma.event.update({ where: { pid: eventPid }, @@ -177,7 +185,7 @@ export const addVisual = async (req: Request, res: return res.status(200).json({ type: "success", - payload: { event } + payload: { } }) }; diff --git a/src/Controllers/media.controller.ts b/src/Controllers/media.controller.ts index a1d86dc..b575b41 100644 --- a/src/Controllers/media.controller.ts +++ b/src/Controllers/media.controller.ts @@ -86,12 +86,6 @@ export const uploadImage = async (req: Request, res: Response) => { const fileName = file.md5 + (fileIsSvg ? ".svg" : "." + fileType?.ext); - if (fs.existsSync("media/" + fileName)) { - return res.status(409).json(createError("The uploaded file already exists", {}, createMediaLinks(fileName))); - } - - file.mv("/app/media/" + fileName, console.error); - try { //generate record const media = await prisma.media.create({ @@ -114,6 +108,10 @@ export const uploadImage = async (req: Request, res: Response) => { throw new ForwardableError(409, `The image with the the hash and extenstion ${fileName} already exists!`); } } + + if (!fs.existsSync("media/" + fileName)) { + file.mv("/app/media/" + fileName, console.error); + } }; export const getAllMedia = async (req: Request, res: Response) => { diff --git a/src/Controllers/role_schema.controller.ts b/src/Controllers/role_schema.controller.ts index 2f03949..8c94265 100644 --- a/src/Controllers/role_schema.controller.ts +++ b/src/Controllers/role_schema.controller.ts @@ -152,7 +152,7 @@ export const addVisual = async (req: Request, res: return res.status(200).json({ type: "success", - payload: { schema } + payload: { } }) }; diff --git a/src/Routes/event.routes.ts b/src/Routes/event.routes.ts index 290816d..efc9137 100644 --- a/src/Routes/event.routes.ts +++ b/src/Routes/event.routes.ts @@ -10,8 +10,12 @@ router.get("/:eventId", getEvent); router.post("/", requireAuthentication, addEvent); -router.post<"/:eventPid/images", {eventPid: string}>("/:eventPid/images", requireAuthentication, addVisual); +router.post<"/:eventPid/media", { eventPid: string }>("/:eventPid/media", requireAuthentication, addVisual); -router.delete<"/:eventPid/images/:pid", {eventPid: string, pid: string}>("/:eventPid/images/:pid", requireAuthentication, deleteVisual); +router.delete<"/:eventPid/media/:pid", { eventPid: string; pid: string }>( + "/:eventPid/media/:pid", + requireAuthentication, + deleteVisual +); export default router;