diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-04-06 18:06:32 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-04-06 18:06:32 +0200 |
| commit | faaa5d91fe49f7b104d21dd868ad649b26fd0f98 (patch) | |
| tree | cb855987a10e2d546fa46d7d632d282217a6386e /gui/src/shared | |
| parent | 6157a809ad6eb5cdb06b7fcaea9549b3f100f07a (diff) | |
| parent | e09e863cc858f8d04a1963c629328f77ae383f51 (diff) | |
| download | mullvadvpn-faaa5d91fe49f7b104d21dd868ad649b26fd0f98.tar.xz mullvadvpn-faaa5d91fe49f7b104d21dd868ad649b26fd0f98.zip | |
Merge branch 'add-submit-voucher-function'
Diffstat (limited to 'gui/src/shared')
| -rw-r--r-- | gui/src/shared/daemon-rpc-types.ts | 9 | ||||
| -rw-r--r-- | gui/src/shared/ipc-event-channel.ts | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts index ac1e7584f6..661250c5f5 100644 --- a/gui/src/shared/daemon-rpc-types.ts +++ b/gui/src/shared/daemon-rpc-types.ts @@ -320,6 +320,15 @@ export interface ISocketAddress { port: number; } +export type VoucherResponse = + | { type: 'success'; new_expiry: string } + | { type: 'invalid' | 'already_used' | 'error' }; + +export enum VoucherErrorCode { + Invalid = -400, + AlreadyUsed = -401, +} + export function parseSocketAddress(socketAddrStr: string): ISocketAddress { const re = new RegExp(/(.+):(\d+)$/); const matches = socketAddrStr.match(re); diff --git a/gui/src/shared/ipc-event-channel.ts b/gui/src/shared/ipc-event-channel.ts index 48f7b71bdc..b6e788e72e 100644 --- a/gui/src/shared/ipc-event-channel.ts +++ b/gui/src/shared/ipc-event-channel.ts @@ -18,6 +18,7 @@ import { KeygenEvent, RelaySettingsUpdate, TunnelState, + VoucherResponse, } from './daemon-rpc-types'; export interface IAppStateSnapshot { @@ -110,6 +111,7 @@ interface IAccountHandlers extends ISender<IAccountData | undefined> { handleLogin(fn: (token: AccountToken) => Promise<void>): void; handleLogout(fn: () => Promise<void>): void; handleWwwAuthToken(fn: () => Promise<string>): void; + handleSubmitVoucher(fn: (voucherCode: string) => Promise<VoucherResponse>): void; } interface IAccountMethods extends IReceiver<IAccountData | undefined> { @@ -117,6 +119,7 @@ interface IAccountMethods extends IReceiver<IAccountData | undefined> { login(token: AccountToken): Promise<void>; logout(): Promise<void>; getWwwAuthToken(): Promise<string>; + submitVoucher(voucherCode: string): Promise<VoucherResponse>; } interface IAccountHistoryHandlers extends ISender<AccountToken[]> { @@ -193,6 +196,7 @@ const DO_LOGIN = 'do-login'; const DO_LOGOUT = 'do-logout'; const DO_GET_WWW_AUTH_TOKEN = 'do-get-www-auth-token'; const ACCOUNT_DATA_CHANGED = 'account-data-changed'; +const REDEEM_VOUCHER = 'redeem-voucher'; const AUTO_START_CHANGED = 'auto-start-changed'; const SET_AUTO_START = 'set-auto-start'; @@ -287,6 +291,7 @@ export class IpcRendererEventChannel { login: requestSender(DO_LOGIN), logout: requestSender(DO_LOGOUT), getWwwAuthToken: requestSender(DO_GET_WWW_AUTH_TOKEN), + submitVoucher: requestSender(REDEEM_VOUCHER), }; public static accountHistory: IAccountHistoryMethods = { @@ -383,6 +388,7 @@ export class IpcMainEventChannel { handleLogin: requestHandler(DO_LOGIN), handleLogout: requestHandler(DO_LOGOUT), handleWwwAuthToken: requestHandler(DO_GET_WWW_AUTH_TOKEN), + handleSubmitVoucher: requestHandler<VoucherResponse>(REDEEM_VOUCHER), }; public static accountHistory: IAccountHistoryHandlers = { |
