diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2023-02-01 20:34:22 -0500 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2023-02-01 20:34:22 -0500 |
commit | 2026a8f4579b1db0f6e5e7b11ac33c13969adb6c (patch) | |
tree | daa13419b7227462775e325a4f5f60f2ed33c1da /src/main.rs | |
parent | remove b64 imgs (diff) | |
download | xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.gz xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.bz2 xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.zip |
static serve refactor
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/src/main.rs b/src/main.rs index e8f17b0..8a8e9d8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,38 +1,25 @@ use axum::{ body::HttpBody, - http::{Request, StatusCode}, + extract::DefaultBodyLimit, + http::Request, middleware::{self, Next}, response::Response, - RequestExt, Router, extract::DefaultBodyLimit, + RequestExt, Router, }; -use std::{net::SocketAddr, process::exit, fs}; +use public::console; +use std::{fs, net::SocketAddr, process::exit}; use tower_cookies::CookieManagerLayer; use tracing::{error, info, metadata::LevelFilter}; use tracing_subscriber::{ filter::filter_fn, prelude::__tracing_subscriber_SubscriberExt, util::SubscriberInitExt, Layer, }; -use types::{http::ResponseCode, extract::RequestIp}; +use types::extract::RequestIp; -use crate::api::{pages, image}; - -mod admin; mod api; -mod console; mod database; +mod public; mod types; -async fn serve<B>(req: Request<B>, next: Next<B>) -> Response -where - B: Send + Sync + 'static + HttpBody, -{ - let uri = req.uri(); - let file = ResponseCode::Success.file(&uri.to_string()).await; - if file.status() != StatusCode::OK { - return next.run(req).await; - } - file -} - async fn log<B>(mut req: Request<B>, next: Next<B>) -> Response where B: Send + Sync + 'static + HttpBody, @@ -47,7 +34,7 @@ where } async fn not_found() -> Response { - ResponseCode::NotFound.file("/404.html").await + public::serve("/404.html").await } #[tokio::main] @@ -69,16 +56,16 @@ async fn main() { }; fs::create_dir_all("./public/image/custom").expect("Coudn't make custom data directory"); - fs::create_dir_all("./public/image/custom/avatar").expect("Coudn't make custom avatar directory"); - fs::create_dir_all("./public/image/custom/banner").expect("Coudn't make custom banner directory"); + fs::create_dir_all("./public/image/custom/avatar") + .expect("Coudn't make custom avatar directory"); + fs::create_dir_all("./public/image/custom/banner") + .expect("Coudn't make custom banner directory"); let app = Router::new() .fallback(not_found) .layer(middleware::from_fn(log)) - .layer(middleware::from_fn(serve)) - .nest("/", pages::router()) + .nest("/", public::router()) .nest("/api", api::router()) - .nest("/cdn", image::router()) .layer(CookieManagerLayer::new()) .layer(DefaultBodyLimit::max(512_000)); |