Files
telecom-platform/sdk/rust/src/api/graphql.rs
T
nutcas3 808afbc2be feat: Add comprehensive API client modules and JWT authentication to Rust SDK
- Add hmac, sha2, and base64 dependencies to Cargo.toml for JWT support
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Add AuthProvider class with API key and JWT token support (generate_jwt_token, validate_jwt_token, get_headers, clear_token_cache methods)
- Add HTTPClient base class with retry logic, error handling, and timeout management
- Add SubscriberAPI module
2026-04-25 04:54:13 +03:00

24 lines
587 B
Rust

use crate::client::HTTPClient;
use crate::error::TelecomError;
use crate::types::GraphQLRequest;
use std::collections::HashMap;
pub struct GraphQLAPI {
client: HTTPClient,
}
impl GraphQLAPI {
pub fn new(client: HTTPClient) -> Self {
Self { client }
}
pub async fn execute(
&self,
query: String,
variables: Option<HashMap<String, serde_json::Value>>,
) -> Result<HashMap<String, serde_json::Value>, TelecomError> {
let req = GraphQLRequest { query, variables };
self.client.post("/graphql", Some(&req)).await
}
}