From 2026a8f4579b1db0f6e5e7b11ac33c13969adb6c Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 1 Feb 2023 20:34:22 -0500 Subject: static serve refactor --- src/main.rs | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) (limited to 'src/main.rs') 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(req: Request, next: Next) -> 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(mut req: Request, next: Next) -> 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)); -- cgit v1.2.3-freya