Overview
The fetch_recent_signups function retrieves a list of recent user signups with their details.
Function Signature
pub async fn fetch_recent_signups(limit: Option<u32>) -> Result<RecentSignupsResponse>
Parameters
Maximum number of recent signups to return (optional, default: 10)
Return Value
Returns Result<RecentSignupsResponse> containing:
data: Vector of RecentSignup objects
total: Total count of recent signups
Basic Usage
use wacht::api::analytics::*;
// Fetch recent signups with default limit
let signups = fetch_recent_signups(None).await?;
println!("Recent signups: {}", signups.total);
for signup in signups.data {
println!("- {} ({}) - {}", signup.name, signup.email, signup.signed_up_at);
}
Advanced Usage
use wacht::api::analytics::*;
// Fetch last 25 signups
let signups = fetch_recent_signups(Some(25)).await?;
println!("Last {} signups:", signups.data.len());
for (i, signup) in signups.data.iter().enumerate() {
println!("{}. {} - {}", i + 1, signup.name, signup.email);
if let Some(org) = &signup.organization {
println!(" Organization: {}", org.name);
}
println!(" Source: {}", signup.source.unwrap_or("direct".to_string()));
}
Error Handling
match fetch_recent_signups(Some(50)).await {
Ok(response) => {
println!("Retrieved {} recent signups", response.data.len());
println!("Total signups available: {}", response.total);
}
Err(Error::Api { status, message, .. }) => {
match status.as_u16() {
403 => println!("Access denied: {}", message),
429 => println!("Rate limited: {}", message),
_ => println!("API error {}: {}", status, message),
}
}
Err(e) => println!("Request failed: {}", e),
}
Rate Limits
- Analytics operations: 100 requests per minute
- Burst limit: 10 requests per second