File size: 647 Bytes
e8c33fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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,
};