diff --git a/lib/www/server/api/index.js b/lib/www/server/api/index.js index 0a0058f..f1a3705 100644 --- a/lib/www/server/api/index.js +++ b/lib/www/server/api/index.js @@ -91,6 +91,7 @@ app.map({ }, '/project/:project': { get: [ mw.project.summary.get ], // Get project data + delete: [ mw.auth.access.admin, mw.project.delete ], // Delete a project (only if empty) }, '/project/:project/summary': { get: [ mw.project.summary.get ], diff --git a/lib/www/server/api/middleware/project/delete.js b/lib/www/server/api/middleware/project/delete.js new file mode 100644 index 0000000..c3579ec --- /dev/null +++ b/lib/www/server/api/middleware/project/delete.js @@ -0,0 +1,15 @@ + +const { project} = require('../../../lib/db'); + +module.exports = async function (req, res, next) { + + try { + await project.delete(req.params.project) + res.status(204).send(); + next(); + } catch (err) { + next(err); + } + + +}; diff --git a/lib/www/server/api/middleware/project/index.js b/lib/www/server/api/middleware/project/index.js index 5f8fdec..7a2c1b4 100644 --- a/lib/www/server/api/middleware/project/index.js +++ b/lib/www/server/api/middleware/project/index.js @@ -1,6 +1,7 @@ module.exports = { get: require('./get'), post: require('./post'), + delete: require('./delete'), summary: require('./summary'), configuration: require('./configuration'), };