35 lines
903 B
JavaScript

import { User, Playlist } from "@models"
import getTrackDataById from "../../TracksController/services/getTrackDataById"
export default async (payload) => {
const {
limit = 20,
skip = 0,
} = payload
let playlists = await Playlist.find()
.sort({ created_at: -1 })
.limit(limit)
.skip(skip)
playlists = await Promise.all(playlists.map(async (playlist) => {
// get user data
const user = await User.findById(playlist.user_id)
playlist.list = await Promise.all(playlist.list.map(async (track_id) => {
return await getTrackDataById(track_id)
})).catch((err) => {
return []
})
return {
...playlist.toObject(),
user: {
username: user.username,
avatar: user.avatar,
},
}
}))
return playlists
}