diff --git a/src/cloudron.js b/src/cloudron.js index ae3d48d7b..222081f6c 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -54,8 +54,7 @@ var apps = require('./apps.js'), user = require('./user.js'), UserError = user.UserError, userdb = require('./userdb.js'), - util = require('util'), - uuid = require('node-uuid'); + util = require('util'); var REBOOT_CMD = path.join(__dirname, 'scripts/reboot.sh'), INSTALLER_UPDATE_URL = 'http://127.0.0.1:2020/api/v1/installer/update', diff --git a/src/routes/cloudron.js b/src/routes/cloudron.js index b156e973b..68f56c864 100644 --- a/src/routes/cloudron.js +++ b/src/routes/cloudron.js @@ -8,10 +8,12 @@ exports = module.exports = { getProgress: getProgress, getConfig: getConfig, update: update, - feedback: feedback + feedback: feedback, + checkForUpdates: checkForUpdates }; var assert = require('assert'), + async = require('async'), cloudron = require('../cloudron.js'), CloudronError = cloudron.CloudronError, config = require('../config.js'), @@ -20,7 +22,8 @@ var assert = require('assert'), HttpSuccess = require('connect-lastmile').HttpSuccess, progress = require('../progress.js'), mailer = require('../mailer.js'), - superagent = require('superagent'); + superagent = require('superagent'), + updateChecker = require('./updatechecker.js'); function auditSource(req) { var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || null; @@ -129,6 +132,15 @@ function update(req, res, next) { }); } +function checkForUpdates(req, res, next) { + async.series([ + updateChecker.checkAppUpdates, + updateChecker.checkBoxUpdates + ], function () { + next(new HttpSuccess(200, { update: updateChecker.getUpdateInfo() })); + }); +} + function feedback(req, res, next) { assert.strictEqual(typeof req.user, 'object'); diff --git a/src/server.js b/src/server.js index 22479c49e..4e2323692 100644 --- a/src/server.js +++ b/src/server.js @@ -94,6 +94,7 @@ function initializeExpressSync() { // cloudron routes router.get ('/api/v1/cloudron/config', cloudronScope, routes.cloudron.getConfig); router.post('/api/v1/cloudron/update', cloudronScope, routes.user.requireAdmin, routes.user.verifyPassword, routes.cloudron.update); + router.post('/api/v1/cloudron/check_for_updates', cloudronScope, routes.user.requireAdmin, routes.user.verifyPassword, routes.cloudron.checkForUpdates); router.post('/api/v1/cloudron/reboot', cloudronScope, routes.cloudron.reboot); router.get ('/api/v1/cloudron/graphs', cloudronScope, routes.graphs.getGraphs);