Overview
The AnalyticsStatsOptions struct provides filtering options when fetching analytics statistics.
Definition
pub struct AnalyticsStatsOptions {
pub start_date: Option<String>,
pub end_date: Option<String>,
pub organization_id: Option<String>,
}
Fields
The start date for the analytics period in ISO 8601 format (YYYY-MM-DD). If not specified, defaults to 30 days ago.
The end date for the analytics period in ISO 8601 format (YYYY-MM-DD). If not specified, defaults to today.
Filter analytics to a specific organization. If not specified, returns analytics across all organizations.
Usage Example
use wacht::api::analytics::{fetch_analytics_stats, AnalyticsStatsOptions};
// Fetch analytics with default date range (last 30 days)
let default_stats = fetch_analytics_stats(None).await?;
// Fetch analytics for a specific date range
let date_range_options = AnalyticsStatsOptions {
start_date: Some("2024-01-01".to_string()),
end_date: Some("2024-01-31".to_string()),
organization_id: None,
};
let january_stats = fetch_analytics_stats(Some(date_range_options)).await?;
// Fetch analytics for a specific organization
let org_options = AnalyticsStatsOptions {
organization_id: Some("org_123".to_string()),
..Default::default()
};
let org_stats = fetch_analytics_stats(Some(org_options)).await?;
// Fetch year-to-date analytics for an organization
use chrono::{Local, Datelike};
let current_year = Local::now().year();
let ytd_options = AnalyticsStatsOptions {
start_date: Some(format!("{}-01-01", current_year)),
end_date: None, // Defaults to today
organization_id: Some("org_123".to_string()),
};
let ytd_stats = fetch_analytics_stats(Some(ytd_options)).await?;
// Display analytics
println!("Total users: {}", default_stats.total_users);
println!("Active users: {}", default_stats.active_users);
println!("New signups: {}", default_stats.new_signups);
println!("Total organizations: {}", default_stats.total_organizations);
See Also