xet_data/processing/migration_tool/
hub_client_token_refresher.rs1use std::sync::Arc;
2
3use xet_client::cas_client::auth::{AuthError, TokenInfo, TokenRefresher};
4use xet_client::hub_client::{HubClient, Operation};
5
6pub struct HubClientTokenRefresher {
7 pub operation: Operation,
8 pub client: Arc<HubClient>,
9}
10
11#[cfg_attr(not(target_family = "wasm"), async_trait::async_trait)]
12#[cfg_attr(target_family = "wasm", async_trait::async_trait(?Send))]
13impl TokenRefresher for HubClientTokenRefresher {
14 async fn refresh(&self) -> std::result::Result<TokenInfo, AuthError> {
15 let jwt_info = self
16 .client
17 .get_cas_jwt(self.operation)
18 .await
19 .map_err(AuthError::token_refresh_failure)?;
20
21 Ok((jwt_info.access_token, jwt_info.exp))
22 }
23}