tinfo-web-server / utils /controllerResponses.js
Faridaqurr
initial backend
e8c33fa
Raw
History Blame Contribute Delete
647 Bytes
const { isValidObjectId } = require('../validation/commonValidation');
const ensureValidIdOrRespond = (res, id, entityLabel) => {
if (!isValidObjectId(id)) {
res.status(400).json({ message: `Invalid ${entityLabel} ID` });
return false;
}
return true;
};
const findByIdOrRespondNotFound = async ({ Model, id, res, notFoundMessage, lean = false }) => {
const query = Model.findById(id);
const doc = lean ? await query.lean() : await query;
if (!doc) {
res.status(404).json({ message: notFoundMessage });
return null;
}
return doc;
};
module.exports = {
ensureValidIdOrRespond,
findByIdOrRespondNotFound,
};