diff options
Diffstat (limited to 'server/controllers/api/remote/pods.ts')
-rw-r--r-- | server/controllers/api/remote/pods.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/server/controllers/api/remote/pods.ts b/server/controllers/api/remote/pods.ts new file mode 100644 index 000000000..85ef7bb42 --- /dev/null +++ b/server/controllers/api/remote/pods.ts | |||
@@ -0,0 +1,40 @@ | |||
1 | import express = require('express') | ||
2 | import { waterfall } from 'async/waterfall' | ||
3 | |||
4 | const db = require('../../../initializers/database') | ||
5 | import { checkSignature, signatureValidator } from '../../../middlewares' | ||
6 | |||
7 | const remotePodsRouter = express.Router() | ||
8 | |||
9 | // Post because this is a secured request | ||
10 | remotePodsRouter.post('/remove', | ||
11 | signatureValidator, | ||
12 | checkSignature, | ||
13 | removePods | ||
14 | ) | ||
15 | |||
16 | // --------------------------------------------------------------------------- | ||
17 | |||
18 | export { | ||
19 | remotePodsRouter | ||
20 | } | ||
21 | |||
22 | // --------------------------------------------------------------------------- | ||
23 | |||
24 | function removePods (req, res, next) { | ||
25 | const host = req.body.signature.host | ||
26 | |||
27 | waterfall([ | ||
28 | function loadPod (callback) { | ||
29 | db.Pod.loadByHost(host, callback) | ||
30 | }, | ||
31 | |||
32 | function deletePod (pod, callback) { | ||
33 | pod.destroy().asCallback(callback) | ||
34 | } | ||
35 | ], function (err) { | ||
36 | if (err) return next(err) | ||
37 | |||
38 | return res.type('json').status(204).end() | ||
39 | }) | ||
40 | } | ||