diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-07-23 09:04:12 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2024-08-23 09:44:47 +0200 |
| commit | ca9457348155930527f22209df7a237efa5cf125 (patch) | |
| tree | 615b40aa57e6e77e7376f66204364914c603212d /android/lib | |
| parent | 67486d316b94262cb2e478765f4234b5d12afcba (diff) | |
| download | mullvadvpn-ca9457348155930527f22209df7a237efa5cf125.tar.xz mullvadvpn-ca9457348155930527f22209df7a237efa5cf125.zip | |
Wrap missing external calls in either catch
Diffstat (limited to 'android/lib')
3 files changed, 29 insertions, 16 deletions
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt index 36460ae1fa..1ea2e8a251 100644 --- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt +++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt @@ -53,6 +53,7 @@ import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting import net.mullvad.mullvadvpn.lib.model.AppId import net.mullvad.mullvadvpn.lib.model.AppVersionInfo as ModelAppVersionInfo +import net.mullvad.mullvadvpn.lib.model.ClearAccountHistoryError import net.mullvad.mullvadvpn.lib.model.ClearAllOverridesError import net.mullvad.mullvadvpn.lib.model.ConnectError import net.mullvad.mullvadvpn.lib.model.Constraint @@ -78,6 +79,7 @@ import net.mullvad.mullvadvpn.lib.model.GetDeviceStateError import net.mullvad.mullvadvpn.lib.model.GetVersionInfoError import net.mullvad.mullvadvpn.lib.model.LoginAccountError import net.mullvad.mullvadvpn.lib.model.NameAlreadyExists +import net.mullvad.mullvadvpn.lib.model.LogoutAccountError import net.mullvad.mullvadvpn.lib.model.NewAccessMethodSetting import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings import net.mullvad.mullvadvpn.lib.model.Ownership as ModelOwnership @@ -276,9 +278,13 @@ class ManagementService( Either.catch { grpc.connectTunnel(Empty.getDefaultInstance()).value } .mapLeft(ConnectError::Unknown) - suspend fun disconnect(): Boolean = grpc.disconnectTunnel(Empty.getDefaultInstance()).value + suspend fun disconnect(): Either<ConnectError, Boolean> = + Either.catch { grpc.disconnectTunnel(Empty.getDefaultInstance()).value } + .mapLeft(ConnectError::Unknown) - suspend fun reconnect(): Boolean = grpc.reconnectTunnel(Empty.getDefaultInstance()).value + suspend fun reconnect(): Either<ConnectError, Boolean> = + Either.catch { grpc.reconnectTunnel(Empty.getDefaultInstance()).value } + .mapLeft(ConnectError::Unknown) private suspend fun getTunnelState(): ModelTunnelState = grpc.getTunnelState(Empty.getDefaultInstance()).toDomain() @@ -298,9 +304,13 @@ class ManagementService( Either.catch { grpc.getVersionInfo(Empty.getDefaultInstance()).toDomain() } .mapLeft { GetVersionInfoError.Unknown(it) } - suspend fun logoutAccount() { - grpc.logoutAccount(Empty.getDefaultInstance()) - } + private suspend fun getCurrentApiAccessMethod(): ApiAccessMethodSetting = + grpc.getCurrentApiAccessMethod(Empty.getDefaultInstance()).toDomain() + + suspend fun logoutAccount(): Either<LogoutAccountError, Unit> = + Either.catch { grpc.logoutAccount(Empty.getDefaultInstance()) } + .mapLeft(LogoutAccountError::Unknown) + .mapEmpty() suspend fun loginAccount(accountNumber: AccountNumber): Either<LoginAccountError, Unit> = Either.catch { grpc.loginAccount(StringValue.of(accountNumber.value)) } @@ -315,9 +325,10 @@ class ManagementService( } .mapEmpty() - suspend fun clearAccountHistory() { - grpc.clearAccountHistory(Empty.getDefaultInstance()) - } + suspend fun clearAccountHistory(): Either<ClearAccountHistoryError, Unit> = + Either.catch { grpc.clearAccountHistory(Empty.getDefaultInstance()) } + .mapLeft(ClearAccountHistoryError::Unknown) + .mapEmpty() suspend fun getAccountHistory(): Either<GetAccountHistoryError, AccountNumber?> = Either.catch { @@ -424,11 +435,6 @@ class ManagementService( .mapLeft(SetWireguardQuantumResistantError::Unknown) .mapEmpty() - // Todo needs to be more advanced - suspend fun setRelaySettings(value: RelaySettings) { - grpc.setRelaySettings(value.fromDomain()) - } - suspend fun setObfuscation( value: SelectedObfuscation ): Either<SetObfuscationOptionsError, Unit> = @@ -649,9 +655,6 @@ class ManagementService( .mapLeft(::UnknownApiAccessMethodError) .mapEmpty() - private suspend fun getCurrentApiAccessMethod(): ApiAccessMethodSetting = - grpc.getCurrentApiAccessMethod(Empty.getDefaultInstance()).toDomain() - suspend fun testCustomApiAccessMethod( customProxy: ApiAccessMethod.CustomProxy ): Either<TestApiAccessMethodError, Unit> = diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt new file mode 100644 index 0000000000..bd5cff4002 --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ClearAccountHistoryError.kt @@ -0,0 +1,5 @@ +package net.mullvad.mullvadvpn.lib.model + +interface ClearAccountHistoryError { + data class Unknown(val t: Throwable) : ClearAccountHistoryError +} diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt new file mode 100644 index 0000000000..da92b9216c --- /dev/null +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/LogoutAccountError.kt @@ -0,0 +1,5 @@ +package net.mullvad.mullvadvpn.lib.model + +interface LogoutAccountError { + data class Unknown(val t: Throwable) : LogoutAccountError +} |
