summaryrefslogtreecommitdiffhomepage
path: root/mullvad-api
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@mullvad.net>2025-04-08 16:51:28 +0200
committerJon Petersson <jon.petersson@mullvad.net>2025-04-08 16:51:28 +0200
commit9a6938a4a32ecc162cc5afcf15fa636de2f9b9fe (patch)
treeb19fdb5f1a4b299de54d323965be32a3756270d6 /mullvad-api
parent5a53a0479d33d9cdab1f3859706fb2ff776ee56a (diff)
parent4ae7d50075a6e82a0d1edabf26ce13d9357479cb (diff)
downloadmullvadvpn-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.rs28
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
}
}