deemix-gui/server/src/routes/api/get/getUserFavorites.ts

42 lines
1.3 KiB
TypeScript
Raw Normal View History

// @ts-expect-error
import { Deezer } from 'deezer-js'
import { ApiHandler } from '../../../types'
import { sessionDZ } from '../../../main'
const path: ApiHandler['path'] = '/getUserFavorites'
const handler: ApiHandler['handler'] = async (req, res) => {
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
const dz = sessionDZ[req.session.id]
let result: any = {}
if (dz.logged_in) {
const userID = dz.current_user.id
try {
let data
data = await dz.api.get_user_playlists(userID, { limit: -1 })
result.playlists = data.data
data = await dz.api.get_user_albums(userID, { limit: -1 })
result.albums = data.data
data = await dz.api.get_user_artists(userID, { limit: -1 })
result.artists = data.data
data = await dz.api.get_user_tracks(userID, { limit: -1 })
result.tracks = data.data
} catch {
result.playlists = await dz.gw.get_user_playlists(userID, { limit: -1 })
result.albums = await dz.gw.get_user_albums(userID, { limit: -1 })
result.artists = await dz.gw.get_user_artists(userID, { limit: -1 })
result.tracks = await dz.gw.get_user_tracks(userID, { limit: -1 })
}
} else {
result = { error: 'notLoggedIn' }
}
res.send(result)
}
const apiHandler: ApiHandler = { path, handler }
export default apiHandler