Skip to main content

headless_lms_server/programs/
calculate_page_visit_stats.rs

1use std::env;
2
3use crate::config::program_config::ProgramConfig;
4use crate::setup_tracing;
5
6use dotenvy::dotenv;
7use headless_lms_models as models;
8use sqlx::PgPool;
9
10pub async fn main() -> anyhow::Result<()> {
11    // TODO: Audit that the environment access only happens in single-threaded code.
12    unsafe { env::set_var("RUST_LOG", "info,actix_web=info,sqlx=warn") };
13    dotenv().ok();
14    setup_tracing()?;
15    let database_url = ProgramConfig::database_url_with_default();
16    let db_pool = PgPool::connect(&database_url).await?;
17    let mut conn = db_pool.acquire().await?;
18    models::library::page_visit_stats::calculate_latest(&mut conn).await?;
19    info!("Calculated page view stats for all dates.");
20    Ok(())
21}