babelforce_manager_sdk/resources/
me.rs1use crate::error::{map_user_err, ManagerError};
2use crate::gen::user::apis::configuration::Configuration;
3use crate::gen::user::apis::user_api as api;
4use crate::gen::user::models;
5use crate::retry::{with_retry, RetryPolicy};
6use crate::token::SharedCfg;
7
8pub struct MeResource {
11 pub(crate) cfg: SharedCfg<Configuration>,
12 pub(crate) retry: RetryPolicy,
13}
14
15impl MeResource {
16 pub async fn get(&self) -> Result<models::UserItemResponse, ManagerError> {
18 let cfg = self.cfg.get().await?;
19 let cfg = cfg.as_ref();
20 with_retry(&self.retry, true, || api::get_user(cfg))
21 .await
22 .map_err(map_user_err)
23 }
24
25 pub async fn customer(&self) -> Result<models::UserCustomerItemResponse, ManagerError> {
27 let cfg = self.cfg.get().await?;
28 let cfg = cfg.as_ref();
29 with_retry(&self.retry, true, || api::get_user_customer(cfg))
30 .await
31 .map_err(map_user_err)
32 }
33
34 pub async fn accounts(&self) -> Result<Vec<models::Account>, ManagerError> {
36 let cfg = self.cfg.get().await?;
37 let cfg = cfg.as_ref();
38 let resp = with_retry(&self.retry, true, || api::list_accounts(cfg))
39 .await
40 .map_err(map_user_err)?;
41 Ok(resp.items)
42 }
43
44 pub async fn reset_password(&self) -> Result<(), ManagerError> {
46 let cfg = self.cfg.get().await?;
47 let cfg = cfg.as_ref();
48 with_retry(&self.retry, false, || api::reset_password(cfg))
49 .await
50 .map_err(map_user_err)?;
51 Ok(())
52 }
53}