summaryrefslogtreecommitdiff
path: root/src/handlers/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/handlers/mod.rs')
-rw-r--r--src/handlers/mod.rs53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs
deleted file mode 100644
index 3235f24..0000000
--- a/src/handlers/mod.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-use std::sync::Arc;
-use tokio::sync::Mutex;
-
-use axum::extract::DefaultBodyLimit;
-use axum::middleware::{self};
-use axum::routing::{delete, get, post};
-use axum::Router;
-use sqlx::SqlitePool;
-use tower_http::add_extension::AddExtensionLayer;
-use tower_http::services::ServeDir;
-
-use admin::{admin_healthcheck, admin_middleware, delete_story, generate_token, upload_story};
-use frontend_builder::home;
-
-use crate::db::story::Story;
-
-use self::admin::{get_products, get_stories};
-use self::frontend_builder::build_page;
-
-mod admin;
-pub mod frontend_builder;
-
-#[derive(Debug, Clone)]
-pub struct ApiContext {
- pool: SqlitePool,
-}
-
-#[derive(Clone)]
-struct AppState {
- admin_token: Arc<Mutex<String>>,
-}
-
-pub async fn router(pool: SqlitePool) -> Router {
- let state = AppState {
- admin_token: Arc::new(Mutex::new(generate_token())),
- };
-
- Router::new()
- .route("/admin/story/:story_id", delete(delete_story))
- .route("/admin/story", post(upload_story).get(get_stories))
- .route("/admin/product", get(get_products))
- .route("/admin", get(admin_healthcheck))
- .layer(middleware::from_fn_with_state(
- state.clone(),
- admin_middleware,
- ))
- .with_state(state)
- .route("/", get(home))
- .route("/stories", get(build_page::<Story>))
- .nest_service("/static", ServeDir::new("static"))
- .layer(DefaultBodyLimit::max(1074000000))
- .layer(AddExtensionLayer::new(ApiContext { pool }))
-}