simple-images-upload/src/libs/format.js
2023-09-23 20:54:44 +02:00

40 lines
1.1 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());
};