From 620d5ccf47a166270ae00b37aac967943a924baa Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Thu, 2 Nov 2023 19:48:30 +0100 Subject: [PATCH] Add /version API endpoint --- lib/www/server/api/index.js | 3 +++ lib/www/server/api/middleware/index.js | 3 ++- lib/www/server/api/middleware/version/get.js | 19 +++++++++++++++++++ .../server/api/middleware/version/index.js | 4 ++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 lib/www/server/api/middleware/version/get.js create mode 100644 lib/www/server/api/middleware/version/index.js diff --git a/lib/www/server/api/index.js b/lib/www/server/api/index.js index 435888f..4747841 100644 --- a/lib/www/server/api/index.js +++ b/lib/www/server/api/index.js @@ -88,6 +88,9 @@ app.use(mw.etag.ifNoneMatch); // We must be authenticated before we can access these app.map({ + '/version': { + get: [ mw.version.get ] + }, '/project': { get: [ mw.project.get ], // Get list of projects post: [ mw.auth.access.admin, mw.project.post ], // Create a new project diff --git a/lib/www/server/api/middleware/index.js b/lib/www/server/api/middleware/index.js index 4a83800..c765936 100644 --- a/lib/www/server/api/middleware/index.js +++ b/lib/www/server/api/middleware/index.js @@ -17,5 +17,6 @@ module.exports = { meta: require('./meta'), openapi: require('./openapi'), rss: require('./rss'), - etag: require('./etag') + etag: require('./etag'), + version: require('./version') }; diff --git a/lib/www/server/api/middleware/version/get.js b/lib/www/server/api/middleware/version/get.js new file mode 100644 index 0000000..ef831da --- /dev/null +++ b/lib/www/server/api/middleware/version/get.js @@ -0,0 +1,19 @@ + +const version = require('../../../lib/version'); + +module.exports = async function (req, res, next) { + + try { + const v = await version(); + if (req.user.role != "admin" && req.user.role != "user") { + delete v.os; + delete v.db; + } + res.status(200).json(v); + } catch (err) { + next(err); + return; + } + next(); + +}; diff --git a/lib/www/server/api/middleware/version/index.js b/lib/www/server/api/middleware/version/index.js new file mode 100644 index 0000000..fe5c66b --- /dev/null +++ b/lib/www/server/api/middleware/version/index.js @@ -0,0 +1,4 @@ + +module.exports = { + get: require('./get') +}