diff --git a/src/apps.js b/src/apps.js index 8d6708b81..20870ef34 100644 --- a/src/apps.js +++ b/src/apps.js @@ -183,6 +183,7 @@ const appTaskManager = require('./apptaskmanager.js'), tasks = require('./tasks.js'), tgz = require('./backupformat/tgz.js'), TransformStream = require('stream').Transform, + updateChecker = require('./updatechecker.js'), users = require('./users.js'), util = require('util'), uuid = require('uuid'), @@ -604,7 +605,7 @@ function pickFields(app, accessLevel) { 'sso', 'debugMode', 'reverseProxyConfig', 'enableBackup', 'creationTime', 'updateTime', 'ts', 'tags', 'label', 'notes', 'secondaryDomains', 'redirectDomains', 'aliasDomains', 'devices', 'env', 'enableAutomaticUpdate', 'storageVolumeId', 'storageVolumePrefix', 'mounts', 'enableTurn', 'enableRedis', 'checklist', - 'enableMailbox', 'mailboxDisplayName', 'mailboxName', 'mailboxDomain', 'enableInbox', 'inboxName', 'inboxDomain']); + 'enableMailbox', 'mailboxDisplayName', 'mailboxName', 'mailboxDomain', 'enableInbox', 'inboxName', 'inboxDomain', 'updateInfo']); } // remove private certificate key @@ -770,6 +771,7 @@ function attachProperties(app, domainObjectMap) { app.secondaryDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); }); app.redirectDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); }); app.aliasDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); }); + app.updateInfo = updateChecker.getAppUpdateInfoSync(app.id); } function isAdmin(user) { @@ -1127,7 +1129,6 @@ async function get(id) { postProcess(result[0]); attachProperties(result[0], domainObjectMap); - return result[0]; } diff --git a/src/updatechecker.js b/src/updatechecker.js index c91cafb93..5741d0678 100644 --- a/src/updatechecker.js +++ b/src/updatechecker.js @@ -2,6 +2,7 @@ exports = module.exports = { checkForUpdates, + getAppUpdateInfoSync, getUpdateInfo, @@ -31,6 +32,12 @@ function getUpdateInfo() { return state; } +function getAppUpdateInfoSync(appId) { + assert.strictEqual(typeof appId, 'string'); + + return getUpdateInfo()[appId] || null; +} + async function checkAppUpdates(options) { assert.strictEqual(typeof options, 'object');