summaryrefslogtreecommitdiffstats
path: root/server/api/systemlog.js
diff options
context:
space:
mode:
authorUdo Walter2019-03-27 16:34:54 +0100
committerUdo Walter2019-03-27 16:34:54 +0100
commitded2a87bfc3ab6913fd1e7d639f6bc2eaab3098b (patch)
tree4c77f164f36aeff02fae54d61a231ea2f7d63a71 /server/api/systemlog.js
parent[log] add filter functionality (diff)
downloadbas-ded2a87bfc3ab6913fd1e7d639f6bc2eaab3098b.tar.gz
bas-ded2a87bfc3ab6913fd1e7d639f6bc2eaab3098b.tar.xz
bas-ded2a87bfc3ab6913fd1e7d639f6bc2eaab3098b.zip
rename api log to systemlog to prevent adblocker blocking it
Diffstat (limited to 'server/api/systemlog.js')
-rw-r--r--server/api/systemlog.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/server/api/systemlog.js b/server/api/systemlog.js
new file mode 100644
index 0000000..d2bd10c
--- /dev/null
+++ b/server/api/systemlog.js
@@ -0,0 +1,34 @@
+/* global __appdir */
+var path = require('path')
+var db = require(path.join(__appdir, 'lib', 'sequelize'))
+var express = require('express')
+const { decorateApp } = require('@awaitjs/express')
+var router = decorateApp(express.Router())
+
+// ############################################################################
+// ########################### GET requests #################################
+
+router.getAsync('', async (req, res) => {
+ 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)
+ if (entry.userSnapshot) entry.userSnapshot = JSON.parse(entry.userSnapshot)
+ })
+ res.send(log)
+})
+
+// ############################################################################
+// ############################################################################
+
+module.exports.router = router