50 lines
1.3 KiB
TypeScript

import { ApiHandler } from '../../../types'
// @ts-expect-error
import { Deezer } from 'deezer-js'
import { sessionDZ } from '../../../main'
const path: ApiHandler['path'] = '/search'
const handler: ApiHandler['handler'] = async (req, res) => {
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
let dz = sessionDZ[req.session.id]
const term = String(req.query.term)
const type = String(req.query.type)
const start = parseInt(String(req.query.start))
const nb = parseInt(String(req.query.nb))
let data;
switch (type) {
case 'track':
data = await dz.api.search_track(term, { limit: nb, index: start })
break
case 'album':
data = await dz.api.search_album(term, { limit: nb, index: start })
break
case 'artist':
data = await dz.api.search_artist(term, { limit: nb, index: start })
break
case 'playlist':
data = await dz.api.search_playlist(term, { limit: nb, index: start })
break
case 'radio':
data = await dz.api.search_radio(term, { limit: nb, index: start })
break
case 'user':
data = await dz.api.search_user(term, { limit: nb, index: start })
break
default:
data = await dz.api.search(term, { limit: nb, index: start })
break
}
data.type = type
res.send(data)
}
const apiHandler: ApiHandler = { path, handler }
export default apiHandler