import express from "express"; import { ensureLoggedIn } from "connect-ensure-login"; import { sendResponse } from "../../../libs/format"; import { searchSong, getAlbumDetails } from "../../../helpers"; import Albums from "../../../middleware/Albums"; // eslint-disable-next-line new-cap const router = express.Router(); router.route("/").get(ensureLoggedIn("/connexion"), async (req, res, next) => { try { const data = await searchSong( req.query.q, req.query.format || null, req.query.year || null, req.query.country || null ); const discogsIds = []; const foundIds = []; for (let i = 0; i < data.results.length; i += 1) { discogsIds.push(data.results[i].id); } req.query.discogsIds = discogsIds; const albums = new Albums(req); const myAlbums = await albums.getAll(); if (myAlbums.rows) { for (let i = 0; i < myAlbums.rows.length; i += 1) { foundIds.push(myAlbums.rows[i].discogsId); } } for (let i = 0; i < data.results.length; i += 1) { data.results[i].inCollection = foundIds.includes( data.results[i].id ); } sendResponse(req, res, data); } catch (err) { next(err); } }); router .route("/:discogsId") .get(ensureLoggedIn("/connexion"), async (req, res, next) => { try { const data = await getAlbumDetails(req.params.discogsId); sendResponse(req, res, data); } catch (err) { next(err); } }); export default router;