From fee00cc143b122abf1b12fc5e5770d3deff8ddb9 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Fri, 9 Sep 2022 15:51:06 +0200 Subject: [PATCH] Created the GET /media/:id route to get a media object --- api/routes/media.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/api/routes/media.ts b/api/routes/media.ts index 92175de..c6d0e78 100644 --- a/api/routes/media.ts +++ b/api/routes/media.ts @@ -4,7 +4,7 @@ import {Rank} from "../../models/User"; import Multer from "multer"; import path from "path"; import {bucket} from "../../controller/bucket"; -import {createMedia} from "../../controller/media"; +import {createMedia, getMediaById} from "../../controller/media"; const app = Router(); @@ -18,6 +18,16 @@ const fileSizeErrorHandler = (err: Error, req: AuthenticatedRequest, res: Respon next(); } +app.get("/:id", hasRank(Rank.TEAM_MEMBER), async (req: AuthenticatedRequest, res: Response) => { + const media = await getMediaById(req.params.id); + if (!media) return res.status(404).json({message: "The provided asset could not be found"}); + + if (!(req.user.rank === Rank.TEAM_MEMBER && media.clientId === req.user.clientId || req.user.rank === Rank.ADMIN)) + return res.status(401).json({message: "You don't have the permission to show information about this link"}); + + res.json(media); +}); + app.post("/upload", hasRank(Rank.TEAM_MEMBER), multer.any(), fileSizeErrorHandler, async (req: AuthenticatedRequest, res: Response) => { if (!req.files) return res.status(400).json({message: "No file uploaded"}); const files = req.files as Express.Multer.File[]