Add route to trigger app import

This commit is contained in:
Girish Ramakrishnan
2018-11-11 21:58:02 -08:00
parent b8861b9d78
commit 3fb8243264
3 changed files with 37 additions and 9 deletions

View File

@@ -3,10 +3,15 @@
exports = module.exports = {
backup: backup,
update: update,
retire: retire
retire: retire,
importAppDatabase: importAppDatabase
};
var backups = require('../backups.js'),
var apps = require('../apps.js'),
AppsError = apps.AppsError,
addons = require('../addons.js'),
backups = require('../backups.js'),
BackupsError = require('../backups.js').BackupsError,
cloudron = require('../cloudron.js'),
debug = require('debug')('box:routes/sysadmin'),
@@ -48,8 +53,21 @@ function retire(req, res, next) {
debug('triggering retire');
cloudron.retire('migrate', { }, function (error) {
if (error) console.error('Retire failed.', error);
if (error) debug('Retire failed.', error);
});
next(new HttpSuccess(202, {}));
}
function importAppDatabase(req, res, next) {
apps.get(req.params.id, function (error, app) {
if (error && error.reason === AppsError.NOT_FOUND) return next(new HttpError(404, 'No such app'));
if (error) return next(new HttpError(500, error));
addons.importAppDatabase(app, req.query.addon || '', function (error) {
if (error) return next(new HttpError(500, error));
next(new HttpSuccess(202, {}));
});
});
}