| Crates.io | oriko-services |
| lib.rs | oriko-services |
| version | 0.1.1 |
| created_at | 2025-12-29 22:27:37.992972+00 |
| updated_at | 2025-12-31 21:50:30.709952+00 |
| description | Voudo Oriko services - Gmail API client |
| homepage | |
| repository | https://github.com/your-org/email-apps |
| max_upload_size | |
| id | 2011589 |
| size | 51,324 |
Voudo Oriko services - Gmail API client.
Add to your Cargo.toml:
[dependencies]
oriko-services = { path = "../packages/oriko-services" }
# Or from crates.io (when published)
# oriko-services = "0.1.0"
use oriko_services::{GmailClient, GmailClientBuilder, TokenProvider};
use async_trait::async_trait;
// Implement TokenProvider
struct MyTokenProvider;
#[async_trait]
impl TokenProvider for MyTokenProvider {
async fn get_access_token(&self) -> Result<String, String> {
// Your token retrieval logic
Ok("your_access_token".to_string())
}
}
// Create client
let client = GmailClient::builder()
.token_provider(Box::new(MyTokenProvider))
.build()?;
// Fetch messages
let messages = client.fetch_messages(Some(10)).await?;
// Fetch specific message
let message = client.fetch_message(&message_id).await?;
// Parse email
let parsed = client.parse_email(&message)?;
GmailClient::builder() - Create builderfetch_messages(max_results) - Fetch message listfetch_message(message_id) - Fetch full messageparse_email(message) - Parse email into structured formathttp_client(client) - Set custom HTTP clienttoken_provider(provider) - Set token provider (required)build() - Build client#[async_trait]
pub trait TokenProvider: Send + Sync {
async fn get_access_token(&self) -> Result<String, String>;
}
Implement this trait to provide access tokens. The client will call this method for each API request.