summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cli.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 0659851..308294d 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -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(),