headless_lms_server/programs/
calculate_page_visit_stats.rs

1use std::env;
2
3use crate::setup_tracing;
4
5use dotenv::dotenv;
6use headless_lms_models as models;
7use sqlx::PgPool;
8
9pub async fn main() -> anyhow::Result<()> {
10    // TODO: Audit that the environment access only happens in single-threaded code.
11    unsafe { env::set_var("RUST_LOG", "info,actix_web=info,sqlx=warn") };
12    dotenv().ok();
13    setup_tracing()?;
14    let database_url = env::var("DATABASE_URL")
15        .unwrap_or_else(|_| "postgres://localhost/headless_lms_dev".to_string());
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}