use std::sync::Arc;
use crate::error::Result;
use crate::http::HttpClient;
use crate::types::{
RefreshRequest, RefreshResponse, RegisterRequest, RegisterResponse, TokenRequest,
TokenResponse,
};
#[derive(Clone)]
pub struct AuthResource {
pub(crate) http: Arc<HttpClient>,
}
impl AuthResource {
pub async fn register(&self, request: RegisterRequest) -> Result<RegisterResponse> {
self.http.post("/auth/register", &request, None).await
}
pub async fn token(&self, request: TokenRequest) -> Result<TokenResponse> {
self.http.post("/auth/token", &request, None).await
}
pub async fn refresh(&self, request: RefreshRequest) -> Result<RefreshResponse> {
self.http.post("/auth/refresh", &request, None).await
}
}