MusicTopus/src/libs/format.js

40 lines
1.2 KiB
JavaScript

/**
* Fonction permettant de formater une réponse basée sur la méthode utilisée
* @param {Object} req
* @param {Object} res
* @param {Object} data
*
* @return {Object}
*/
export const sendResponse = (req, res, data) => {
let status = 200;
const path = req.route.path.split("/");
switch (req.method) {
case "GET":
// INFO: On regarde de quel type de get il s'agit (liste ou item)
if (path[path.length - 1].indexOf(":") === 0) {
// INFO: Cas d'un item
status = !data ? 404 : 200;
} else {
// INFO: Cas d'une liste
status =
data.rows === undefined || data.rows.length > 0 ? 200 : 204;
}
return res.status(status).json(data).end();
case "PATCH":
return res.status(200).json(data).end();
case "DELETE":
return res.status(200).json(data).end();
case "POST":
return res.status(201).json(data).end();
default:
return res.status(500).json({ message: "Not implemented" });
}
};
export default (res, page) => {
res.status(200).render("index", page.render());
};