From d5d4abd1a875726d4ddd0f31b55af07904e7395c Mon Sep 17 00:00:00 2001 From: Florian Hartwich Date: Sun, 9 Jul 2017 11:32:20 +0200 Subject: [PATCH] Add war delete endpoint --- api/routes/wars.js | 22 +++++++++++++++++++++- package.json | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/api/routes/wars.js b/api/routes/wars.js index 21b0659..04f7777 100644 --- a/api/routes/wars.js +++ b/api/routes/wars.js @@ -64,7 +64,7 @@ wars.route('/') if (err) { return next(err); } - //TODO: combine run and clean in one script + //TODO: combine run and clean in one script, so log file gets touched only once exec(__dirname + '/../war-parser/run.sh ' + folderName + ' ' + item._id, (error, stdout) => { if (error) { return next(error); @@ -127,6 +127,26 @@ wars.route('/:id') }); }) + .delete(apiAuthenticationMiddleware, checkMT,(req, res, next) => { + WarModel.findByIdAndRemove(req.params.id, (err, item) => { + if (err) { + err.status = codes.wrongrequest; + } + else if (!item) { + err = new Error("item not found"); + err.status = codes.notfound; + } + + // delete players with this war ID as foreign key + PlayerModel.find({warId: item._id}).remove().exec(); + + // we don't set res.locals.items and thus it will send a 204 (no content) at the end. see last handler user.use(..) + res.locals.processed = true; + next(err); // this works because err is in normal case undefined and that is the same as no parameter + + }) + }) + .all( routerHandling.httpMethodNotAllowed ); diff --git a/package.json b/package.json index beddf20..194b492 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opt-cc", - "version": "1.0.0", + "version": "1.1.0", "license": "MIT", "private": true, "scripts": {