use crate::{AccountId, UserToken};
use super::AkahuClient;
use reqwest::Method;
impl AkahuClient {
pub async fn get_accounts(
&self,
user_token: &UserToken,
) -> crate::error::AkahuResult<crate::models::ListResponse<crate::models::Account>> {
const URI: &str = "accounts";
let headers = self.build_user_headers(user_token)?;
let req = self
.client
.request(Method::GET, format!("{}/{}", self.base_url, URI))
.headers(headers)
.build()?;
self.execute_request(req).await
}
pub async fn get_account(
&self,
user_token: &UserToken,
account_id: &AccountId,
) -> crate::error::AkahuResult<crate::models::ItemResponse<crate::models::Account>> {
let uri = format!("accounts/{}", account_id.as_str());
let headers = self.build_user_headers(user_token)?;
let req = self
.client
.request(Method::GET, format!("{}/{}", self.base_url, uri))
.headers(headers)
.build()?;
self.execute_request(req).await
}
#[deprecated(
note = "This endpoint is deprecated for accounts with official open banking connections. Use the Revoke Access To Authorisation endpoint instead."
)]
pub async fn revoke_account_access(
&self,
user_token: &UserToken,
account_id: &AccountId,
) -> crate::error::AkahuResult<()> {
let uri = format!("accounts/{}", account_id.as_str());
let headers = self.build_user_headers(user_token)?;
let req = self
.client
.request(Method::DELETE, format!("{}/{}", self.base_url, uri))
.headers(headers)
.build()?;
let res = self.client.execute(req).await?;
if res.status().is_success() {
Ok(())
} else {
self.handle_error_response(res).await
}
}
}