summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-02-01 20:34:22 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-02-01 20:34:22 -0500
commit2026a8f4579b1db0f6e5e7b11ac33c13969adb6c (patch)
treedaa13419b7227462775e325a4f5f60f2ed33c1da /src/main.rs
parentremove b64 imgs (diff)
downloadxssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.gz
xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.tar.bz2
xssbook-2026a8f4579b1db0f6e5e7b11ac33c13969adb6c.zip
static serve refactor
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs39
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));