diff --git a/lib/www/server/api/index.js b/lib/www/server/api/index.js index a8aa477..7206c38 100644 --- a/lib/www/server/api/index.js +++ b/lib/www/server/api/index.js @@ -357,6 +357,26 @@ app.map({ delete: [ mw.auth.operations, mw.auth.access.write, mw.info.delete ] } }, + + /* + * 4D comparisons + */ + + // FIXME no authentication yet! + + '/comparison/group': { + get: [ mw.comparisons.groups.list ], + '/:group': { + get: [ mw.comparisons.groups.get ], + }, + }, + + + + /* + * Other endpoints + */ + '/queue/outgoing/': { 'asaqc': { get: [ mw.etag.noSave, mw.queue.asaqc.get ], diff --git a/lib/www/server/api/middleware/comparisons/groups/get.js b/lib/www/server/api/middleware/comparisons/groups/get.js new file mode 100644 index 0000000..629d2e1 --- /dev/null +++ b/lib/www/server/api/middleware/comparisons/groups/get.js @@ -0,0 +1,20 @@ +const comparisons = require('../../../../lib/comparisons'); + + +module.exports = async function (req, res, next) { + + try { + // const data = await comparisons.groups() + // if (data?.[req.params.group]) { + const data = await comparisons.getGroup(req.params.group); + if (data) { + res.status(200).send(data); + } else { + res.status(404).send({message: "Group does not exist"}); + } + return next(); + } catch (err) { + next(err); + } + +}; diff --git a/lib/www/server/api/middleware/comparisons/groups/index.js b/lib/www/server/api/middleware/comparisons/groups/index.js new file mode 100644 index 0000000..ee7b7f4 --- /dev/null +++ b/lib/www/server/api/middleware/comparisons/groups/index.js @@ -0,0 +1,4 @@ +module.exports = { + list: require('./list'), + get: require('./get'), +} diff --git a/lib/www/server/api/middleware/comparisons/groups/list.js b/lib/www/server/api/middleware/comparisons/groups/list.js new file mode 100644 index 0000000..cf4697a --- /dev/null +++ b/lib/www/server/api/middleware/comparisons/groups/list.js @@ -0,0 +1,18 @@ +const comparisons = require('../../../../lib/comparisons'); + + +module.exports = async function (req, res, next) { + + try { + const data = await comparisons.groups() + if (data) { + res.status(200).send(data); + } else { + res.status(204).end(); + } + return next(); + } catch (err) { + next(err); + } + +}; diff --git a/lib/www/server/api/middleware/comparisons/index.js b/lib/www/server/api/middleware/comparisons/index.js new file mode 100644 index 0000000..5c4f5aa --- /dev/null +++ b/lib/www/server/api/middleware/comparisons/index.js @@ -0,0 +1,3 @@ +module.exports = { + groups: require('./groups') +} diff --git a/lib/www/server/api/middleware/index.js b/lib/www/server/api/middleware/index.js index 993ccad..432737f 100644 --- a/lib/www/server/api/middleware/index.js +++ b/lib/www/server/api/middleware/index.js @@ -23,4 +23,5 @@ module.exports = { version: require('./version'), admin: require('./admin'), compress: require('./compress'), + comparisons: require('./comparisons'), };