From 6a9cf5338e5131396c72e0c9dfc41ebf94de95d3 Mon Sep 17 00:00:00 2001 From: Udo Walter Date: Wed, 27 Mar 2019 15:20:29 +0000 Subject: [log] add filter functionality --- server/api/log.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'server/api/log.js') diff --git a/server/api/log.js b/server/api/log.js index d3acb04..d2bd10c 100644 --- a/server/api/log.js +++ b/server/api/log.js @@ -9,7 +9,17 @@ var router = decorateApp(express.Router()) // ########################### GET requests ################################# router.getAsync('', async (req, res) => { - const log = await db.log.findAll({ include: ['group', 'client', 'user'], order: [['timestamp', 'DESC']] }) + const where = {} + if (req.query.from || req.query.to) { + where.timestamp = {} + if (req.query.from) where.timestamp[db.Op.gte] = req.query.from + if (req.query.to) where.timestamp[db.Op.lte] = req.query.to + } + if (req.query.categories) where.category = req.query.categories.split(',') + if (req.query.clients) where.clientId = req.query.clients.split(',') + if (req.query.groups) where.groupId = req.query.groups.split(',') + if (req.query.users) where.userId = req.query.users.split(',') + const log = await db.log.findAll({ where, include: ['client', 'group', 'user'], order: [['timestamp', 'DESC']] }) log.forEach(entry => { if (entry.clientSnapshot) entry.clientSnapshot = JSON.parse(entry.clientSnapshot) if (entry.groupSnapshot) entry.groupSnapshot = JSON.parse(entry.groupSnapshot) -- cgit v1.2.3-55-g7522