this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Added IMPLEMENTED_DAYS to control the flow of days during conf

+18 -13
+10 -4
shared/src/advent/mod.rs
··· 14 14 use std::str::Utf8Error; 15 15 use thiserror::Error; 16 16 17 + pub fn get_implemented_days() -> Vec<u8> { 18 + let days_from_env = std::env::var("IMPLEMENTED_DAYS").unwrap_or_else(|_| "1".to_string()); 19 + 20 + let max_day: u8 = days_from_env.parse().unwrap_or(1); 21 + 22 + (1..=max_day).collect() 23 + } 24 + 17 25 #[derive(Debug, Error)] 18 26 pub enum AdventError { 19 27 #[error("Database error: {0}")] ··· 157 165 ctx_map.extend(map.iter().map(|(k, v)| (k.clone(), v.clone()))); 158 166 } 159 167 } 160 - let handlebar_rendered = 161 - reg.render_template(day_one_text, &context)?; 168 + let handlebar_rendered = reg.render_template(day_one_text, &context)?; 162 169 163 170 Ok( 164 171 markdown::to_html_with_options(&handlebar_rendered, &get_markdown_options()) ··· 188 195 ctx_map.extend(map.iter().map(|(k, v)| (k.clone(), v.clone()))); 189 196 } 190 197 } 191 - let handlebar_rendered = 192 - reg.render_template(day_two_text, &context)?; 198 + let handlebar_rendered = reg.render_template(day_two_text, &context)?; 193 199 194 200 Ok(Some( 195 201 markdown::to_html_with_options(&handlebar_rendered, &get_markdown_options())
+7 -6
web/src/main.rs
··· 257 257 .route( 258 258 "/day/{id}", 259 259 match prod { 260 - true => get(handlers::day::view_day_handler) 261 - .route_layer(middleware::from_fn_with_state(app_state.postgres_pool.clone(), unlock::unlock)), 260 + true => get(handlers::day::view_day_handler).route_layer( 261 + middleware::from_fn_with_state(app_state.postgres_pool.clone(), unlock::unlock), 262 + ), 262 263 false => get(handlers::day::view_day_handler), 263 264 }, 264 265 ) 265 266 .route( 266 267 "/day/{id}", 267 268 match prod { 268 - true => post(handlers::day::post_day_handler) 269 - .route_layer(middleware::from_fn_with_state(app_state.postgres_pool.clone(), unlock::unlock)), 269 + true => post(handlers::day::post_day_handler).route_layer( 270 + middleware::from_fn_with_state(app_state.postgres_pool.clone(), unlock::unlock), 271 + ), 270 272 false => post(handlers::day::post_day_handler), 271 273 }, 272 274 ) ··· 309 311 .map(|val| val == "true") 310 312 .unwrap_or_else(|_| true); 311 313 if prod { 312 - // Only show implemented days, progressively unlocked as users complete them 313 - let implemented_days: Vec<u8> = vec![1, 2, 3]; 314 + let implemented_days = shared::advent::get_implemented_days(); 314 315 if let Some(&first) = implemented_days.first() { 315 316 unlocked.push(first); 316 317 }
+1 -3
web/src/unlock.rs
··· 38 38 ) 39 39 .into_response(); 40 40 } 41 - 42 - let implemented_days: Vec<u8> = vec![1, 2, 3]; 43 - 41 + let implemented_days = shared::advent::get_implemented_days(); 44 42 if !implemented_days.contains(&day) { 45 43 return ( 46 44 http::StatusCode::FORBIDDEN,