diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-14 10:42:02 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-20 12:46:59 -0300 |
| commit | 94789842f27ae66c94866ceb8c40ecc7f195e450 (patch) | |
| tree | cadf6d1d38338de62e5f0013643fa6da5c72325e /gui | |
| parent | 9cf83be2a3cba3a21bb925262900c5152a7f0d6a (diff) | |
| download | mullvadvpn-94789842f27ae66c94866ceb8c40ecc7f195e450.tar.xz mullvadvpn-94789842f27ae66c94866ceb8c40ecc7f195e450.zip | |
Add GUI RPC call to get app version info
Diffstat (limited to 'gui')
| -rw-r--r-- | gui/packages/desktop/src/renderer/lib/daemon-rpc.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gui/packages/desktop/src/renderer/lib/daemon-rpc.js b/gui/packages/desktop/src/renderer/lib/daemon-rpc.js index d2fdce72ac..3f3d3af9c1 100644 --- a/gui/packages/desktop/src/renderer/lib/daemon-rpc.js +++ b/gui/packages/desktop/src/renderer/lib/daemon-rpc.js @@ -205,6 +205,22 @@ const BackendStateSchema = object({ target_state: enumeration(...allSecurityStates), }); +export type AppVersionInfo = { + currentIsSupported: boolean, + latest: { + latestStable: string, + latest: string, + }, +}; + +const AppVersionInfoSchema = object({ + current_is_supported: boolean, + latest: object({ + latest_stable: string, + latest: string, + }), +}); + export interface DaemonRpcProtocol { connect(string): void; disconnect(): void; @@ -231,6 +247,7 @@ export interface DaemonRpcProtocol { getAccountHistory(): Promise<Array<AccountToken>>; removeAccountFromHistory(accountToken: AccountToken): Promise<void>; getCurrentVersion(): Promise<string>; + getVersionInfo(): Promise<AppVersionInfo>; } export class ResponseParseError extends Error { @@ -465,4 +482,20 @@ export class DaemonRpc implements DaemonRpcProtocol { throw new ResponseParseError('Invalid response from get_current_version', null); } } + + async getVersionInfo(): Promise<AppVersionInfo> { + const response = await this._transport.send('get_version_info'); + try { + const versionInfo = validate(AppVersionInfoSchema, response); + return { + currentIsSupported: versionInfo.current_is_supported, + latest: { + latestStable: versionInfo.latest.latest_stable, + latest: versionInfo.latest.latest, + }, + }; + } catch (error) { + throw new ResponseParseError('Invalid response from get_version_info', null); + } + } } |
