From 45239549bf2659998dcf9196d86974b0b625912e Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sat, 23 Jan 2016 18:31:58 +0100 Subject: Finalise the join in a network and add the ability to quit it --- routes/api/v1/pods.js | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'routes/api/v1/pods.js') diff --git a/routes/api/v1/pods.js b/routes/api/v1/pods.js index 2bb8f89ab..2430b0d7e 100644 --- a/routes/api/v1/pods.js +++ b/routes/api/v1/pods.js @@ -6,6 +6,7 @@ var middleware = require('../../../middlewares') var miscMiddleware = middleware.misc var reqValidator = middleware.reqValidators.pods + var secureRequest = middleware.reqValidators.remote.secureRequest var pods = require('../../../src/pods') function listPods (req, res, next) { @@ -24,8 +25,33 @@ }) } + function removePods (req, res, next) { + pods.remove(req.body.signature.url, function (err) { + if (err) return next(err) + + res.sendStatus(204) + }) + } + function makeFriends (req, res, next) { - pods.makeFriends(function (err) { + pods.hasFriends(function (err, has_friends) { + if (err) return next(err) + + if (has_friends === true) { + // We need to quit our friends before make new ones + res.sendStatus(409) + } else { + pods.makeFriends(function (err) { + if (err) return next(err) + + res.sendStatus(204) + }) + } + }) + } + + function quitFriends (req, res, next) { + pods.quitFriends(function (err) { if (err) return next(err) res.sendStatus(204) @@ -34,7 +60,10 @@ router.get('/', miscMiddleware.cache(false), listPods) router.get('/makefriends', miscMiddleware.cache(false), makeFriends) + router.get('/quitfriends', miscMiddleware.cache(false), quitFriends) router.post('/', reqValidator.podsAdd, miscMiddleware.cache(false), addPods) + // Post because this is a secured request + router.post('/remove', secureRequest, miscMiddleware.decryptBody, removePods) module.exports = router })() -- cgit v1.2.3