mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
implement recent music endpoint
This commit is contained in:
parent
7448c187c2
commit
1eca312e3b
36
packages/server/services/music/routes/music/recently/get.js
Normal file
36
packages/server/services/music/routes/music/recently/get.js
Normal 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
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user