Skip to main content

uptrakit_openapi_client/
api_tokens.rs

1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::api_tokens::{
4    ApiTokenListResponse, CreateApiTokenRequest, CreateApiTokenResponse,
5};
6use uuid::Uuid;
7
8impl UptrakitClient {
9    /// Create a new API token.
10    pub async fn create_api_token(
11        &self,
12        req: &CreateApiTokenRequest,
13    ) -> Result<CreateApiTokenResponse> {
14        self.post_json(crate::paths::api_tokens::BASE, req).await
15    }
16
17    /// List all API tokens for the current user.
18    pub async fn list_api_tokens(&self) -> Result<ApiTokenListResponse> {
19        self.get(crate::paths::api_tokens::BASE).await
20    }
21
22    /// Revoke an API token by ID.
23    pub async fn revoke_api_token(&self, id: &Uuid) -> Result<()> {
24        self.delete(&crate::paths::api_tokens::by_id(id)).await
25    }
26}
27
28#[cfg(test)]
29mod tests {
30    use crate::types_impl::api_tokens::CreateApiTokenRequest;
31
32    #[test]
33    fn create_api_token_request_serialization() {
34        let req = CreateApiTokenRequest {
35            name: "my-token".to_string(),
36        };
37        let json = serde_json::to_value(&req).expect("serialize");
38        assert_eq!(json["name"], "my-token");
39    }
40}