import express from "express"; import { ensureLoggedIn } from "connect-ensure-login"; import { sendResponse } from "../../../libs/format"; import Albums from "../../../middleware/Albums"; // eslint-disable-next-line new-cap const router = express.Router(); router .route("/") .get(async (req, res, next) => { try { const albums = new Albums(req); const data = await albums.getAll(); const { exportFormat = "json" } = req.query; switch (exportFormat) { case "csv": case "musictopus": res.header("Content-Type", "text/csv"); res.attachment("export-musictopus.csv"); return res.status(200).send(data); case "xml": res.header("Content-type", "text/xml"); res.attachment("export-musictopus.xml"); return res.status(200).send(data); case "xls": return data.write("musictopus.xls", res); case "json": default: return sendResponse(req, res, data); } } catch (err) { return next(err); } }) .post(ensureLoggedIn("/connexion"), async (req, res, next) => { try { const data = await Albums.postAddOne(req); sendResponse(req, res, data); } catch (err) { next(err); } }); router .route("/:itemId") .patch(ensureLoggedIn("/connexion"), async (req, res, next) => { try { const albums = new Albums(req); const data = await albums.patchOne(); sendResponse(req, res, data); } catch (err) { next(err); } }) .delete(ensureLoggedIn("/connexion"), async (req, res, next) => { try { const albums = new Albums(req); const data = await albums.deleteOne(); sendResponse(req, res, data); } catch (err) { next(err); } }); export default router;