implement options for playlist controller

This commit is contained in:
SrGooglo 2023-06-09 14:26:19 +00:00
parent c7a554e455
commit a66e561a75
2 changed files with 11 additions and 2 deletions

View File

@ -34,7 +34,7 @@ export default class PlaylistsModel {
return data
}
static deletePlaylist = async (id) => {
static deletePlaylist = async (id, options = {}) => {
if (!id) {
throw new Error("ID is required")
}
@ -43,6 +43,7 @@ export default class PlaylistsModel {
instance: PlaylistsModel.api_instance,
method: "DELETE",
url: `/playlists/${id}`,
params: options,
})
return data

View File

@ -1,4 +1,4 @@
import { Playlist } from "@models"
import { Playlist, Track } from "@models"
import { AuthorizationError, PermissionError, NotFoundError } from "@shared-classes/Errors"
export default async (req, res) => {
@ -6,6 +6,8 @@ export default async (req, res) => {
return new AuthorizationError(req, res)
}
const removeWithTracks = req.query.remove_with_tracks === "true"
let playlist = await Playlist.findOne({
_id: req.params.playlist_id,
}).catch((err) => {
@ -24,6 +26,12 @@ export default async (req, res) => {
_id: req.params.playlist_id,
})
if (removeWithTracks) {
await Track.deleteMany({
_id: playlist.tracks,
})
}
return res.json({
success: true,
})