use axum::{ extract::{Request, State}, middleware::Next, response::Response, }; use crate::{app::App, clock::RequestedAt, error::Internal}; // Expires messages and channels before each request. pub async fn middleware( State(app): State, RequestedAt(expired_at): RequestedAt, req: Request, next: Next, ) -> Result { app.tokens().expire(&expired_at).await?; app.invites().expire(&expired_at).await?; app.messages().expire(&expired_at).await?; app.channels().expire(&expired_at).await?; Ok(next.run(req).await) }