Created the DELETE /media/:id route to delete a file from the bucket & database
This commit is contained in:
parent
edf7f6c25a
commit
4afba19ee9
@ -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, getMediaById} from "../../controller/media";
|
import {createMedia, deleteMedia, getMediaById, getMediaObject} from "../../controller/media";
|
||||||
|
|
||||||
const app = Router();
|
const app = Router();
|
||||||
|
|
||||||
@ -49,4 +49,15 @@ app.post("/upload", hasRank(Rank.TEAM_MEMBER), multer.any(), fileSizeErrorHandle
|
|||||||
blobStream.end(files[0].buffer);
|
blobStream.end(files[0].buffer);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.delete("/:id", hasRank(Rank.TEAM_MEMBER), async (req: AuthenticatedRequest, res: Response) => {
|
||||||
|
const media = await getMediaObject(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 delete this media"});
|
||||||
|
|
||||||
|
await deleteMedia(req.params.id);
|
||||||
|
res.json({message: "The provided media got successfully deleted"});
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
Loading…
x
Reference in New Issue
Block a user