pavex_session/
middleware.rsuse pavex::{cookie::ResponseCookies, response::Response};
use tracing::Span;
use crate::{state::errors::FinalizeError, Session};
#[tracing::instrument(
name = "Finalize session",
level = tracing::Level::DEBUG, skip_all,
fields(session.cookie.set = tracing::field::Empty)
)]
pub async fn finalize_session<'store>(
response: Response,
response_cookies: &mut ResponseCookies,
mut session: Session<'store>,
) -> Result<Response, FinalizeError> {
let cookie = session.finalize().await?;
Span::current().record("session.cookie.set", cookie.is_some());
if let Some(cookie) = cookie {
response_cookies.insert(cookie);
}
Ok(response)
}