· 7 years ago · Jul 17, 2018, 09:26 PM
1function getAds(req, res) {
2 jwt.verify(req.token, 'secretKey', (err) => {
3 if (err) {
4 res.sendStatus(403);
5 }
6 else {
7 let page = req.query.page || 0;
8 let items_per_page = parseInt(req.query.items_per_page) || 10;
9 let sort_order = req.query.sort_order || 'asc';
10 let sortField = req.query.sort || 'name';
11 let firstElementIndex = page * items_per_page;
12 const tag_query = req.query.tags ? {tags: req.query.tags} : {};
13 const query = req.query.find ? {title: req.query.find} : {};
14
15 Promise.all([
16 adItem.find((query, tag_query))
17 .skip(firstElementIndex)
18 .limit(items_per_page)
19 .sort({[sortField]: sort_order})
20 .exec(),
21 adItem.find({})
22 .count()
23 .exec(),
24 ]).then(([docs, numberOfItems]) => {
25 res.json({results: docs, count: numberOfItems});
26
27 }).catch(e => {
28 res.json({message: e.message});
29 });
30 }
31 })
32}