From bb8fff26306d62710469eff6223337dae6627c65 Mon Sep 17 00:00:00 2001 From: Jon Seager Date: Thu, 5 Feb 2026 19:04:36 +0000 Subject: [PATCH] refactor(routes): move page handlers to routes/app/ subdirectory Move home, auth, data, add, and timeline page handlers to routes/app/. Update import paths: super::is_authenticated to crate::application::routes::is_authenticated, super::entity:: to crate::application::routes::api::entity:: in data.rs and add.rs. --- src/application/routes/{ => app}/add.rs | 4 +-- src/application/routes/{ => app}/auth.rs | 0 src/application/routes/{ => app}/data.rs | 32 ++++++++++++++------ src/application/routes/{ => app}/home.rs | 2 +- src/application/routes/{ => app}/timeline.rs | 2 +- 5 files changed, 27 insertions(+), 13 deletions(-) rename src/application/routes/{ => app}/add.rs (94%) rename src/application/routes/{ => app}/auth.rs (100%) rename src/application/routes/{ => app}/data.rs (86%) rename src/application/routes/{ => app}/home.rs (98%) rename src/application/routes/{ => app}/timeline.rs (98%) diff --git a/src/application/routes/add.rs b/src/application/routes/app/add.rs similarity index 94% rename from src/application/routes/add.rs rename to src/application/routes/app/add.rs index 2121579..69f51ea 100644 --- a/src/application/routes/add.rs +++ b/src/application/routes/app/add.rs @@ -11,7 +11,7 @@ use crate::application::routes::support::{ use crate::application::server::AppState; use crate::presentation::web::templates::{AddTemplate, Tab}; -use super::brews::load_brew_form_data; +use crate::application::routes::api::brews::load_brew_form_data; const ADD_TABS: &[Tab] = &[ Tab { @@ -60,7 +60,7 @@ pub(crate) async fn add_page( cookies: tower_cookies::Cookies, Query(query): Query, ) -> Result { - let is_authenticated = super::is_authenticated(&state, &cookies).await; + let is_authenticated = crate::application::routes::is_authenticated(&state, &cookies).await; if !is_authenticated { return Ok(Redirect::to("/login").into_response()); diff --git a/src/application/routes/auth.rs b/src/application/routes/app/auth.rs similarity index 100% rename from src/application/routes/auth.rs rename to src/application/routes/app/auth.rs diff --git a/src/application/routes/data.rs b/src/application/routes/app/data.rs similarity index 86% rename from src/application/routes/data.rs rename to src/application/routes/app/data.rs index d03646c..842791e 100644 --- a/src/application/routes/data.rs +++ b/src/application/routes/app/data.rs @@ -62,7 +62,7 @@ pub(crate) async fn data_page( Query(list_query): Query, ) -> Result { let entity_type = data_type.entity_type; - let is_authenticated = super::is_authenticated(&state, &cookies).await; + let is_authenticated = crate::application::routes::is_authenticated(&state, &cookies).await; let search_value = list_query.search_value(); let content = render_entity_content(&state, &entity_type, list_query, is_authenticated) @@ -145,7 +145,9 @@ async fn render_brews( ) -> Result { use crate::domain::brews::BrewSortKey; let (request, search) = list_query.into_request_and_search::(); - let data = super::brews::load_brew_page(state, request, search.as_deref()).await?; + let data = + crate::application::routes::api::brews::load_brew_page(state, request, search.as_deref()) + .await?; render_list( BrewListTemplate { is_authenticated, @@ -163,8 +165,12 @@ async fn render_roasters( ) -> Result { use crate::domain::roasters::RoasterSortKey; let (request, search) = list_query.into_request_and_search::(); - let (roasters, navigator) = - super::roasters::load_roaster_page(state, request, search.as_deref()).await?; + let (roasters, navigator) = crate::application::routes::api::roasters::load_roaster_page( + state, + request, + search.as_deref(), + ) + .await?; render_list( RoasterListTemplate { is_authenticated, @@ -183,7 +189,8 @@ async fn render_roasts( use crate::domain::roasts::RoastSortKey; let (request, search) = list_query.into_request_and_search::(); let (roasts, navigator) = - super::roasts::load_roast_page(state, request, search.as_deref()).await?; + crate::application::routes::api::roasts::load_roast_page(state, request, search.as_deref()) + .await?; render_list( RoastListTemplate { is_authenticated, @@ -201,7 +208,9 @@ async fn render_bags( ) -> Result { use crate::domain::bags::BagSortKey; let (request, search) = list_query.into_request_and_search::(); - let data = super::bags::load_bag_page(state, request, search.as_deref()).await?; + let data = + crate::application::routes::api::bags::load_bag_page(state, request, search.as_deref()) + .await?; render_list( BagListTemplate { is_authenticated, @@ -219,7 +228,9 @@ async fn render_gear( ) -> Result { use crate::domain::gear::GearSortKey; let (request, search) = list_query.into_request_and_search::(); - let (gear, navigator) = super::gear::load_gear_page(state, request, search.as_deref()).await?; + let (gear, navigator) = + crate::application::routes::api::gear::load_gear_page(state, request, search.as_deref()) + .await?; render_list( GearListTemplate { is_authenticated, @@ -238,7 +249,8 @@ async fn render_cafes( use crate::domain::cafes::CafeSortKey; let (request, search) = list_query.into_request_and_search::(); let (cafes, navigator) = - super::cafes::load_cafe_page(state, request, search.as_deref()).await?; + crate::application::routes::api::cafes::load_cafe_page(state, request, search.as_deref()) + .await?; render_list( CafeListTemplate { is_authenticated, @@ -256,7 +268,9 @@ async fn render_cups( ) -> Result { use crate::domain::cups::CupSortKey; let (request, search) = list_query.into_request_and_search::(); - let (cups, navigator) = super::cups::load_cup_page(state, request, search.as_deref()).await?; + let (cups, navigator) = + crate::application::routes::api::cups::load_cup_page(state, request, search.as_deref()) + .await?; render_list( CupListTemplate { is_authenticated, diff --git a/src/application/routes/home.rs b/src/application/routes/app/home.rs similarity index 98% rename from src/application/routes/home.rs rename to src/application/routes/app/home.rs index cb5904b..20b8677 100644 --- a/src/application/routes/home.rs +++ b/src/application/routes/app/home.rs @@ -23,7 +23,7 @@ pub(crate) async fn home_page( State(state): State, cookies: tower_cookies::Cookies, ) -> Result { - let is_authenticated = super::is_authenticated(&state, &cookies).await; + let is_authenticated = crate::application::routes::is_authenticated(&state, &cookies).await; let (content, stats) = tokio::try_join!(load_home_content(&state), load_stats(&state),).map_err(map_app_error)?; diff --git a/src/application/routes/timeline.rs b/src/application/routes/app/timeline.rs similarity index 98% rename from src/application/routes/timeline.rs rename to src/application/routes/app/timeline.rs index 5a2fb4e..f3c289d 100644 --- a/src/application/routes/timeline.rs +++ b/src/application/routes/app/timeline.rs @@ -78,7 +78,7 @@ pub(crate) async fn timeline_page( Query(query): Query, ) -> Result { let request = query.to_request(); - let is_authenticated = super::is_authenticated(&state, &cookies).await; + let is_authenticated = crate::application::routes::is_authenticated(&state, &cookies).await; if is_datastar_request(&headers) { return render_timeline_chunk(state, request, is_authenticated)