2021-05-05 10:06:24 +00:00
|
|
|
// @ts-expect-error
|
|
|
|
import { Deezer } from 'deezer-js'
|
2021-05-11 18:21:37 +00:00
|
|
|
import { ApiHandler } from '../../../types'
|
2021-05-05 10:06:24 +00:00
|
|
|
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()
|
2021-05-11 18:21:37 +00:00
|
|
|
const dz = sessionDZ[req.session.id]
|
2021-05-05 10:06:24 +00:00
|
|
|
|
2021-05-11 18:21:37 +00:00
|
|
|
let result: any = {}
|
2021-05-05 10:06:24 +00:00
|
|
|
|
2021-05-11 18:21:37 +00:00
|
|
|
if (dz.logged_in) {
|
|
|
|
const userID = dz.current_user.id
|
2021-05-05 10:06:24 +00:00
|
|
|
|
2021-05-11 18:21:37 +00:00
|
|
|
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)
|
2021-05-05 10:06:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const apiHandler: ApiHandler = { path, handler }
|
|
|
|
|
|
|
|
export default apiHandler
|