implement recent music endpoint

This commit is contained in:
SrGooglo 2025-01-25 19:47:32 +00:00
parent 7448c187c2
commit 1eca312e3b

View File

@ -0,0 +1,36 @@
import { RecentActivity } from "@db_models"
import TrackClass from "@classes/track"
export default {
middlewares: [
"withAuthentication",
],
fn: async (req, res) => {
const user_id = req.auth.session.user_id
let activities = await RecentActivity.find({
user_id: user_id,
type: "track_played"
})
.limit(req.query.limit ?? 20)
.sort({ created_at: -1 })
// filter undefined tracks_ids
activities = activities.filter((activity) => {
return activity.payload && activity.payload.track_id
})
// map track objects to track ids
let tracks_ids = activities.map((activity) => {
return activity.payload.track_id
})
const tracks = await TrackClass.get(tracks_ids, {
user_id,
onlyList: true
})
return tracks
}
}