diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cli.rs | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -87,10 +87,6 @@ impl Args { let app = App::from(pool); let app = routers(&app) - .route_layer(middleware::from_fn_with_state( - app.clone(), - expire::middleware, - )) .route_layer(middleware::from_fn(clock::middleware)) .route_layer(middleware::map_response(Self::server_info())) .with_state(app); @@ -144,6 +140,17 @@ fn routers(app: &App) -> Router<App> { ] .into_iter() .fold(Router::default(), Router::merge) + // Run expiry whenever someone accesses the API. This was previously a blanket middleware + // affecting the whole service, but loading the client makes a several requests before the + // client can completely load, each of which was triggering expiry. There is absolutely no + // upside to re-checking expiry tens of times back-to-back like that; the API is accessed + // more regularly and with less of a traffic rush. + // + // This should, probably, be moved to a background job at some point. + .route_layer(middleware::from_fn_with_state( + app.clone(), + expire::middleware, + )) .route_layer(middleware::from_fn_with_state(app.clone(), setup_required)), // API endpoints that handle setup setup::router(), |
