diff --git a/Cargo.lock b/Cargo.lock index 7640e27..f504d7f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2079,7 +2079,7 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "replit-takeout" -version = "1.7.4" +version = "1.7.5" dependencies = [ "airtable-api", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 9bc3c85..4e8eb4f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "replit-takeout" -version = "1.7.4" +version = "1.7.5" edition = "2021" authors = ["Ben Dixon "] diff --git a/src/main.rs b/src/main.rs index 0034f4a..c281e15 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,8 +73,8 @@ async fn rocket() -> _ { .manage(State { token_to_id_cache: tokio::sync::RwLock::new(HashMap::new()), stats_cache: tokio::sync::RwLock::new(( - AggregateStats::default(), - chrono::offset::Utc::now(), + airtable::aggregates().await.expect("airtable aggregates"), + Utc::now(), )), }) .attach(cors.to_cors().unwrap()) @@ -186,6 +186,7 @@ async fn get_stats(state: &rocket::State) -> Option> if seconds_ago > 5 { state.stats_cache.write().await.0 = airtable::aggregates().await.ok()?; + state.stats_cache.write().await.1 = Utc::now(); info!( "Refreshing stats cache ({seconds_ago}) :): {:?}", state.stats_cache.read().await.0 @@ -197,8 +198,7 @@ async fn get_stats(state: &rocket::State) -> Option> ) } - let stats = state.stats_cache.read().await.0.clone(); - Some(Json(stats)) + Some(Json(state.stats_cache.read().await.0)) } async fn airtable_loop() -> Result<()> {