diff --git a/src/appstore.js b/src/appstore.js index f02f9f575..63833299d 100644 --- a/src/appstore.js +++ b/src/appstore.js @@ -8,6 +8,7 @@ exports = module.exports = { getAppVersion, registerWithLoginCredentials, + updateCloudron, purchaseApp, unpurchaseApp, @@ -340,6 +341,31 @@ function registerCloudron(data, callback) { }); } +function updateCloudron(data, callback) { + assert.strictEqual(typeof data, 'object'); + assert.strictEqual(typeof callback, 'function'); + + getCloudronToken(function (error, token) { + if (error) return callback(error); + + const url = `${settings.apiServerOrigin()}/api/v1/update_cloudron`; + const query = { + accessToken: token + }; + + superagent.post(url).query(query).send(data).timeout(30 * 1000).end(function (error, result) { + if (error && !error.response) return callback(new BoxError(BoxError.NETWORK_ERROR, error)); + if (result.statusCode === 401) return callback(new BoxError(BoxError.INVALID_CREDENTIALS)); + if (result.statusCode === 422) return callback(new BoxError(BoxError.LICENSE_ERROR, result.body.message)); + if (result.statusCode !== 200) return callback(new BoxError(BoxError.EXTERNAL_ERROR, util.format('Bad response: %s %s', result.statusCode, result.text))); + + debug(`updateCloudron: Cloudron updated with data ${JSON.stringify(data)}`); + + callback(); + }); + }); +} + function registerWithLoginCredentials(options, callback) { assert.strictEqual(typeof options, 'object'); assert.strictEqual(typeof callback, 'function'); diff --git a/src/cloudron.js b/src/cloudron.js index 677d21c49..b74b5a040 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -331,7 +331,9 @@ function setDashboardDomain(domain, auditSource, callback) { settings.setAdminLocation(domain, fqdn, function (error) { if (error) return callback(error); - eventlog.add(eventlog.ACTION_DASHBOARD_DOMAIN_UPDATE, auditSource, { domain: domain, fqdn: fqdn }); + appstore.updateCloudron({ domain }, NOOP_CALLBACK); + + eventlog.add(eventlog.ACTION_DASHBOARD_DOMAIN_UPDATE, auditSource, { domain, fqdn }); callback(null); });