Created the GET /media/:id route to get a media object

This commit is contained in:
Mathias Wagner 2022-09-09 15:51:06 +02:00
parent a0585b6a73
commit fee00cc143
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -4,7 +4,7 @@ import {Rank} from "../../models/User";
import Multer from "multer"; import Multer from "multer";
import path from "path"; import path from "path";
import {bucket} from "../../controller/bucket"; import {bucket} from "../../controller/bucket";
import {createMedia} from "../../controller/media"; import {createMedia, getMediaById} from "../../controller/media";
const app = Router(); const app = Router();
@ -18,6 +18,16 @@ const fileSizeErrorHandler = (err: Error, req: AuthenticatedRequest, res: Respon
next(); 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) => { 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"}); if (!req.files) return res.status(400).json({message: "No file uploaded"});
const files = req.files as Express.Multer.File[] const files = req.files as Express.Multer.File[]