From dbde3d0f41daee14b70bd80ca9ee7f9f14489c57 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 31 May 2023 19:37:35 +0000 Subject: [PATCH] added missing delete playlist endpoint --- .../playlists/routes/delete/:playlist_id.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 packages/music_server/src/controllers/playlists/routes/delete/:playlist_id.js diff --git a/packages/music_server/src/controllers/playlists/routes/delete/:playlist_id.js b/packages/music_server/src/controllers/playlists/routes/delete/:playlist_id.js new file mode 100644 index 00000000..fb0ee1d6 --- /dev/null +++ b/packages/music_server/src/controllers/playlists/routes/delete/:playlist_id.js @@ -0,0 +1,30 @@ +import { Playlist } from "@models" +import { AuthorizationError, PermissionError, NotFoundError } from "@classes/Errors" + +export default async (req, res) => { + if (!req.session) { + return new AuthorizationError(req, res) + } + + let playlist = await Playlist.findOne({ + _id: req.params.playlist_id, + }).catch((err) => { + return false + }) + + if (!playlist) { + return new NotFoundError(req, res, "Playlist not found") + } + + if (playlist.user_id !== req.session.user_id.toString()) { + return new PermissionError(req, res, "You don't have permission to edit this playlist") + } + + await Playlist.deleteOne({ + _id: req.params.playlist_id, + }) + + return res.json({ + success: true, + }) +} \ No newline at end of file