diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 12:30:57 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 14:30:48 +0000 |
| commit | 25b42f53fef77502e1beb9bebfa574873f5f77a1 (patch) | |
| tree | 2f13856148c1856d188f26f4775b983432331ccd | |
| parent | c9b2417d606315f3a73f25456166c38e8070251d (diff) | |
| download | mullvadvpn-25b42f53fef77502e1beb9bebfa574873f5f77a1.tar.xz mullvadvpn-25b42f53fef77502e1beb9bebfa574873f5f77a1.zip | |
Create `VoucherSubmissionError` enumeration
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt | 12 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 25 |
2 files changed, 37 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt new file mode 100644 index 0000000000..1cf778400a --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt @@ -0,0 +1,12 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +enum class VoucherSubmissionError : Parcelable { + InvalidVoucher, + VoucherAlreadyUsed, + RpcError, + OtherError, +} diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 35fe78dd01..bd23edb769 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -100,6 +100,15 @@ pub enum VoucherSubmissionResult { OtherError, } +#[derive(IntoJava)] +#[jnix(package = "net.mullvad.mullvadvpn.model")] +pub enum VoucherSubmissionError { + InvalidVoucher, + VoucherAlreadyUsed, + RpcError, + OtherError, +} + impl From<Result<VoucherSubmission, daemon_interface::Error>> for VoucherSubmissionResult { fn from(result: Result<VoucherSubmission, daemon_interface::Error>) -> Self { match result { @@ -117,6 +126,22 @@ impl From<Result<VoucherSubmission, daemon_interface::Error>> for VoucherSubmiss } } +impl From<daemon_interface::Error> for VoucherSubmissionError { + fn from(error: daemon_interface::Error) -> Self { + match error { + daemon_interface::Error::RpcError(RestError::ApiError(_, code)) => { + match code.as_str() { + mullvad_rpc::INVALID_VOUCHER => VoucherSubmissionError::InvalidVoucher, + mullvad_rpc::VOUCHER_USED => VoucherSubmissionError::VoucherAlreadyUsed, + _ => VoucherSubmissionError::RpcError, + } + } + daemon_interface::Error::RpcError(_) => VoucherSubmissionError::RpcError, + _ => VoucherSubmissionError::OtherError, + } + } +} + #[no_mangle] #[allow(non_snake_case)] pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_initialize( |
