add tracing; one time lang call

This commit is contained in:
2025-08-13 08:55:22 +02:00
parent 67d861325a
commit e991818c7d
4 changed files with 144 additions and 19 deletions

View File

@@ -19,18 +19,18 @@ async fn index(
messages: Messages,
headers: HeaderMap,
) -> Response {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
tracing::info!("in /index");
let (cookies, req) = backend.client_full(cookies, &headers).await;
tracing::info!("cookies = {cookies:#?}");
tracing::info!("req = {req:#?}");
let client = req.client;
rust_i18n::set_locale(&req.lang.to_string());
let sightings = backend.sightings_for_client(&client).await;
let amount_total_cameras = backend.amount_total_cameras().await;
let highscore = backend.highscore().await;
let lang = language(&cookies, &headers);
let mut page = Page::new(lang);
let mut page = Page::new(req.lang);
page.messages(messages);
let markup = page.content(html! {
hgroup {
@@ -101,10 +101,9 @@ async fn game(
messages: Messages,
Path(uuid): Path<String>,
) -> Result<Redirect, Response> {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
let (cookies, client) = backend.client(cookies).await;
let (cookies, req) = backend.client_full(cookies, &headers).await;
let client = req.client;
rust_i18n::set_locale(req.lang.to_locale());
let Ok(uuid) = Uuid::parse_str(&uuid) else {
return Err(not_found(cookies, headers).await.into_response());
@@ -147,10 +146,9 @@ async fn set_name(
headers: HeaderMap,
Form(form): Form<NameForm>,
) -> Response {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
let (cookies, client) = backend.client(cookies).await;
let (cookies, req) = backend.client_full(cookies, &headers).await;
let client = req.client;
rust_i18n::set_locale(req.lang.to_locale());
match backend.set_client_name(&client, &form.name).await {
Ok(()) => messages.info("set-name-succ"),

View File

@@ -11,6 +11,7 @@ use std::{
};
use tower_http::services::ServeDir;
use tower_sessions::{MemoryStore, SessionManagerLayer};
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
use uuid::Uuid;
#[macro_use]
@@ -70,6 +71,7 @@ impl From<String> for Language {
}
}
#[derive(Debug)]
struct Req {
client: Client,
lang: Language,
@@ -192,6 +194,11 @@ impl Backend {
#[tokio::main]
async fn main() {
tracing_subscriber::registry()
.with(tracing_subscriber::fmt::layer())
.with(EnvFilter::from_default_env())
.init();
let session_store = MemoryStore::default();
let session_layer = SessionManagerLayer::new(session_store).with_secure(false);