mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 18:44:16 +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