From b6793d2957289576479e460c0f98c2ff5f63a171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Fri, 26 Mar 2021 14:32:27 +0100 Subject: [PATCH] fix: version-checker must have instanceId --- src/lib/services/version-service.js | 54 ++++++++++++++++------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/lib/services/version-service.js b/src/lib/services/version-service.js index 2cdf9d24bf..cb795d44ed 100644 --- a/src/lib/services/version-service.js +++ b/src/lib/services/version-service.js @@ -12,49 +12,53 @@ class VersionService { oss: version, enterprise: enterpriseVersion, }; - this.setInstanceId(); - if (versionCheck && versionCheck.url) { - this.versionCheckUrl = versionCheck.url; - if (versionCheck.enable === 'true') { - this.enabled = true; - this.checkLatestVersion(this.instanceId); - setInterval( - () => this.checkLatestVersion(this.instanceId), - TWO_DAYS, - ); - } else { - this.enabled = false; - } - } + this.enabled = + versionCheck && versionCheck.enable === 'true' && versionCheck.url; + this.versionCheckUrl = versionCheck ? versionCheck.url : undefined; + process.nextTick(() => this.setup()); + } + + async setup() { + await this.setInstanceId(); + await this.checkLatestVersion(this.instanceId); + setInterval( + async () => this.checkLatestVersion(this.instanceId), + TWO_DAYS, + ); } async setInstanceId() { try { const { id } = await this.settingStore.get('instanceInfo'); this.instanceId = id; - return id; } catch (err) { this.logger.warn('Could not find instanceInfo'); - return undefined; } } - async checkLatestVersion(instanceId) { + async checkLatestVersion() { if (this.enabled) { try { - const data = await fetch(this.versionCheckUrl, { + const res = await fetch(this.versionCheckUrl, { method: 'POST', body: JSON.stringify({ versions: this.current, - instanceId, + instanceId: this.instanceId, }), headers: { 'Content-Type': 'application/json' }, - }).then(res => res.json()); - this.latest = { - oss: data.versions.oss, - enterprise: data.versions.enterprise, - }; - this.isLatest = data.latest; + }); + if (res.ok) { + const data = await res.json(); + this.latest = { + oss: data.versions.oss, + enterprise: data.versions.enterprise, + }; + this.isLatest = data.latest; + } else { + this.logger.info( + `Could not check newest version. Status: ${res.status}`, + ); + } } catch (err) { this.logger.info('Could not check newest version', err); }