added status filter
This commit is contained in:
@ -22,7 +22,24 @@ const router = express.Router();
|
||||
router.get('/samples', (req, res, next) => {
|
||||
if (!req.auth(res, ['read', 'write', 'maintain', 'dev', 'admin'], 'all')) return;
|
||||
|
||||
SampleModel.find({status: globals.status.validated}).lean().exec((err, data) => {
|
||||
const {error, value: filters} = SampleValidate.query(req.query);
|
||||
if (error) return res400(error, res);
|
||||
|
||||
let conditions;
|
||||
|
||||
if (filters.hasOwnProperty('status')) {
|
||||
if(filters.status === 'all') {
|
||||
conditions = {$or: [{status: globals.status.validated}, {status: globals.status.new}]}
|
||||
}
|
||||
else {
|
||||
conditions = {status: globals.status[filters.status]};
|
||||
}
|
||||
}
|
||||
else { // default
|
||||
conditions = {status: globals.status.validated};
|
||||
}
|
||||
|
||||
SampleModel.find(conditions).lean().exec((err, data) => {
|
||||
if (err) return next(err);
|
||||
res.json(_.compact(data.map(e => SampleValidate.output(e)))); // validate all and filter null values from validation errors
|
||||
})
|
||||
|
Reference in New Issue
Block a user