diff options
| author | Jon Petersson <jon.petersson@mullvad.net> | 2025-04-08 16:51:28 +0200 |
|---|---|---|
| committer | Jon Petersson <jon.petersson@mullvad.net> | 2025-04-08 16:51:28 +0200 |
| commit | 9a6938a4a32ecc162cc5afcf15fa636de2f9b9fe (patch) | |
| tree | b19fdb5f1a4b299de54d323965be32a3756270d6 /mullvad-api | |
| parent | 5a53a0479d33d9cdab1f3859706fb2ff776ee56a (diff) | |
| parent | 4ae7d50075a6e82a0d1edabf26ce13d9357479cb (diff) | |
| download | mullvadvpn-9a6938a4a32ecc162cc5afcf15fa636de2f9b9fe.tar.xz mullvadvpn-9a6938a4a32ecc162cc5afcf15fa636de2f9b9fe.zip | |
Merge branch 'use-mullvad-api-instead-of-urlsession-in-accounts-proxy-ios-982'
Diffstat (limited to 'mullvad-api')
| -rw-r--r-- | mullvad-api/src/lib.rs | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/mullvad-api/src/lib.rs b/mullvad-api/src/lib.rs index 1ced489080..2d2814d099 100644 --- a/mullvad-api/src/lib.rs +++ b/mullvad-api/src/lib.rs @@ -506,15 +506,24 @@ impl AccountsProxy { &self, account: AccountNumber, ) -> impl Future<Output = Result<AccountData, rest::Error>> + use<> { + let request = self.get_data_response(account); + + async move { request.await?.deserialize().await } + } + + pub fn get_data_response( + &self, + account: AccountNumber, + ) -> impl Future<Output = Result<rest::Response<Incoming>, rest::Error>> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); + async move { let request = factory .get(&format!("{ACCOUNTS_URL_PREFIX}/accounts/me"))? .expected_status(&[StatusCode::OK]) .account(account)?; - let response = service.request(request).await?; - response.deserialize().await + service.request(request).await } } @@ -526,6 +535,17 @@ impl AccountsProxy { number: AccountNumber, } + let request = self.create_account_response(); + + async move { + let account: AccountCreationResponse = request.await?.deserialize().await?; + Ok(account.number) + } + } + + pub fn create_account_response( + &self, + ) -> impl Future<Output = Result<rest::Response<Incoming>, rest::Error>> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); @@ -533,9 +553,7 @@ impl AccountsProxy { let request = factory .post(&format!("{ACCOUNTS_URL_PREFIX}/accounts"))? .expected_status(&[StatusCode::CREATED]); - let response = service.request(request).await?; - let account: AccountCreationResponse = response.deserialize().await?; - Ok(account.number) + service.request(request).await } } |
