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