From 9302365cb6cc7c3c01ffdcbee44cb84bb8c36b2e Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Thu, 13 Jul 2023 15:53:20 +0000 Subject: [PATCH] added `/tracks/liked` endpoint --- .../controllers/tracks/routes/get/liked.js | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 packages/music_server/src/controllers/tracks/routes/get/liked.js diff --git a/packages/music_server/src/controllers/tracks/routes/get/liked.js b/packages/music_server/src/controllers/tracks/routes/get/liked.js new file mode 100644 index 00000000..3296dc34 --- /dev/null +++ b/packages/music_server/src/controllers/tracks/routes/get/liked.js @@ -0,0 +1,34 @@ +import { Track, TrackLike } from "@shared-classes/DbModels" +import { AuthorizationError } from "@shared-classes/Errors" + +export default async (req, res) => { + if (!req.session) { + return new AuthorizationError(req, res) + } + + let likedIds = await TrackLike.find({ + user_id: req.session.user_id, + }) + + likedIds = likedIds.map((item) => { + return item.track_id + }) + + let tracks = await Track.find({ + _id: [...likedIds], + //public: true, + }) + .catch((err) => { + return [] + }) + + tracks = tracks.map((item) => { + item = item.toObject() + + item.liked = true + + return item + }) + + return res.json(tracks) +} \ No newline at end of file