summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/api/pages.rs8
-rw-r--r--src/main.rs14
-rw-r--r--src/types/response.rs10
3 files changed, 15 insertions, 17 deletions
diff --git a/src/api/pages.rs b/src/api/pages.rs
index b2bef82..7f5bfc3 100644
--- a/src/api/pages.rs
+++ b/src/api/pages.rs
@@ -14,7 +14,7 @@ async fn login(user: Option<AuthorizedUser>) -> Response {
if user.is_some() {
return Redirect::to("/home").into_response()
} else {
- return ResponseCode::Success.file("/login.html").await.unwrap()
+ return ResponseCode::Success.file("/login.html").await
}
}
@@ -22,7 +22,7 @@ async fn home(user: Option<AuthorizedUser>) -> Response {
if user.is_none() {
return Redirect::to("/login").into_response()
} else {
- return ResponseCode::Success.file("/home.html").await.unwrap()
+ return ResponseCode::Success.file("/home.html").await
}
}
@@ -30,7 +30,7 @@ async fn people(user: Option<AuthorizedUser>) -> Response {
if user.is_none() {
return Redirect::to("/login").into_response()
} else {
- return ResponseCode::Success.file("/people.html").await.unwrap()
+ return ResponseCode::Success.file("/people.html").await
}
}
@@ -38,7 +38,7 @@ async fn profile(user: Option<AuthorizedUser>) -> Response {
if user.is_none() {
return Redirect::to("/login").into_response()
} else {
- return ResponseCode::Success.file("/profile.html").await.unwrap()
+ return ResponseCode::Success.file("/profile.html").await
}
}
diff --git a/src/main.rs b/src/main.rs
index ab5a9cc..ebce57e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,5 +1,5 @@
use std::net::SocketAddr;
-use axum::{Router, response::Response, http::Request, middleware::{Next, self}, extract::ConnectInfo, RequestExt, body::HttpBody, Extension};
+use axum::{Router, response::Response, http::{Request, StatusCode}, middleware::{Next, self}, extract::ConnectInfo, RequestExt, body::HttpBody, Extension};
use tower_cookies::CookieManagerLayer;
use tracing::metadata::LevelFilter;
use tracing_subscriber::{prelude::__tracing_subscriber_SubscriberExt, util::SubscriberInitExt, Layer, filter::filter_fn};
@@ -13,9 +13,10 @@ mod types;
mod console;
async fn serve<B>(req: Request<B>, next: Next<B>) -> Response {
- let Ok(file) = ResponseCode::Success.file(&req.uri().to_string()).await else {
- return next.run(req).await
- };
+ let file = ResponseCode::Success.file(&req.uri().to_string()).await;
+ if file.status() != StatusCode::OK {
+ return next.run(req).await;
+ }
file
}
@@ -33,10 +34,7 @@ async fn log<B>(mut req: Request<B>, next: Next<B>) -> Response where
}
async fn not_found() -> Response {
- match ResponseCode::NotFound.file("/404.html").await {
- Ok(file) => file,
- Err(err) => err
- }
+ ResponseCode::NotFound.file("/404.html").await
}
#[tokio::main]
diff --git a/src/types/response.rs b/src/types/response.rs
index de572b2..d10bce9 100644
--- a/src/types/response.rs
+++ b/src/types/response.rs
@@ -54,21 +54,21 @@ impl ResponseCode {
}
#[instrument()]
- pub async fn file(self, path: &str) -> Result<Response> {
+ pub async fn file(self, path: &str) -> Response {
if path.chars().position(|c| c == '.' ).is_none() {
- return Err(ResponseCode::BadRequest.text("Folders cannot be served"));
+ return ResponseCode::BadRequest.text("Folders cannot be served");
}
let path = format!("public{}", path);
let svc = ServeFile::new(path);
let Ok(mut res) = svc.oneshot(Request::new(Body::empty())).await else {
tracing::error!("Error while fetching file");
- return Err(ResponseCode::InternalServerError.text("Error while fetching file"));
+ return ResponseCode::InternalServerError.text("Error while fetching file");
};
if res.status() != StatusCode::OK {
- return Err(ResponseCode::NotFound.text("File not found"));
+ return ResponseCode::NotFound.text("File not found");
}
*res.status_mut() = self.code();
- Ok(res.into_response())
+ res.into_response()
}
}