use rocket::{get, routes, Route, State}; use rocket_dyn_templates::{context, Template}; use sqlx::SqlitePool; use crate::model::{ stat::{self, Stat}, user::{NonGuestUser, UserWithRoles}, }; use super::log::KioskCookie; #[get("/boats?", rank = 2)] async fn index_boat(db: &State, user: NonGuestUser, year: Option) -> Template { let stat = Stat::boats(db, year).await; let kiosk = false; Template::render( "stat.boats", context!(loggedin_user: &UserWithRoles::from_user(user.user, db).await, stat, kiosk), ) } #[get("/boats?")] async fn index_boat_kiosk( db: &State, _kiosk: KioskCookie, year: Option, ) -> Template { let stat = Stat::boats(db, year).await; let kiosk = true; Template::render("stat.boats", context!(stat, kiosk, show_kiosk_header: true)) } #[get("/?", rank = 2)] async fn index(db: &State, user: NonGuestUser, year: Option) -> Template { let stat = Stat::people(db, year).await; let guest_km = Stat::guest(db, year).await; let personal = stat::get_personal(db, &user.user).await; let kiosk = false; Template::render( "stat.people", context!(loggedin_user: &UserWithRoles::from_user(user.user, db).await, stat, personal, kiosk, guest_km), ) } #[get("/?")] async fn index_kiosk(db: &State, _kiosk: KioskCookie, year: Option) -> Template { let stat = Stat::people(db, year).await; let guest_km = Stat::guest(db, year).await; let kiosk = true; Template::render( "stat.people", context!(stat, kiosk, show_kiosk_header: true, guest_km), ) } pub fn routes() -> Vec { routes![index, index_kiosk, index_boat, index_boat_kiosk] } #[cfg(test)] mod test {}