use crate::{
IdentityInfo, IggyError, PersonalAccessTokenExpiry, PersonalAccessTokenInfo,
RawPersonalAccessToken,
};
use async_trait::async_trait;
#[async_trait]
pub trait PersonalAccessTokenClient {
async fn get_personal_access_tokens(&self) -> Result<Vec<PersonalAccessTokenInfo>, IggyError>;
async fn create_personal_access_token(
&self,
name: &str,
expiry: PersonalAccessTokenExpiry,
) -> Result<RawPersonalAccessToken, IggyError>;
async fn delete_personal_access_token(&self, name: &str) -> Result<(), IggyError>;
async fn login_with_personal_access_token(
&self,
token: &str,
) -> Result<IdentityInfo, IggyError>;
}