diff --git a/src/routes/backups.js b/src/routes/backups.js index e6c160ab6..c744d7bdd 100644 --- a/src/routes/backups.js +++ b/src/routes/backups.js @@ -2,7 +2,8 @@ exports = module.exports = { list: list, - startBackup: startBackup + startBackup: startBackup, + cleanup: cleanup }; let auditSource = require('../auditsource.js'), @@ -35,3 +36,11 @@ function startBackup(req, res, next) { next(new HttpSuccess(202, { taskId })); }); } + +function cleanup(req, res, next) { + backups.startCleanupTask(auditSource.fromRequest(req), function (error, taskId) { + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(202, { taskId })); + }); +} diff --git a/src/routes/test/backups-test.js b/src/routes/test/backups-test.js index b7083c272..030cf6959 100644 --- a/src/routes/test/backups-test.js +++ b/src/routes/test/backups-test.js @@ -84,7 +84,7 @@ describe('Backups API', function () { describe('create', function () { it('fails due to mising token', function (done) { - superagent.post(SERVER_URL + '/api/v1/backups') + superagent.post(SERVER_URL + '/api/v1/backups/create') .end(function (error, result) { expect(result.statusCode).to.equal(401); done(); @@ -92,7 +92,7 @@ describe('Backups API', function () { }); it('fails due to wrong token', function (done) { - superagent.post(SERVER_URL + '/api/v1/backups') + superagent.post(SERVER_URL + '/api/v1/backups/create') .query({ access_token: token.toUpperCase() }) .end(function (error, result) { expect(result.statusCode).to.equal(401); @@ -101,7 +101,7 @@ describe('Backups API', function () { }); it('succeeds', function (done) { - superagent.post(SERVER_URL + '/api/v1/backups') + superagent.post(SERVER_URL + '/api/v1/backups/create') .query({ access_token: token }) .end(function (error, result) { expect(result.statusCode).to.equal(202); diff --git a/src/routes/test/caas-test.js b/src/routes/test/caas-test.js index 0b4031a4e..879d76c73 100644 --- a/src/routes/test/caas-test.js +++ b/src/routes/test/caas-test.js @@ -153,7 +153,7 @@ describe('Caas', function () { after(cleanup); it('calls the appstore after backup is done', function (done) { - superagent.post(SERVER_URL + '/api/v1/backups') + superagent.post(SERVER_URL + '/api/v1/backups/create') .query({ access_token: token }) .end(function (error, result) { expect(result.statusCode).to.equal(202); diff --git a/src/server.js b/src/server.js index cc1c73b4d..7b4149b71 100644 --- a/src/server.js +++ b/src/server.js @@ -149,7 +149,8 @@ function initializeExpressSync() { // backups router.get ('/api/v1/backups', settingsScope, routes.backups.list); - router.post('/api/v1/backups', settingsScope, routes.backups.startBackup); + router.post('/api/v1/backups/create', settingsScope, routes.backups.startBackup); + router.post('/api/v1/backups/cleanup', settingsScope, routes.backups.cleanup); // config route (for dashboard) router.get ('/api/v1/config', profileScope, routes.cloudron.getConfig);