summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-09-10 10:58:47 +0000
committerSanto Cariotti <santo@dcariotti.me>2022-09-10 10:58:47 +0000
commit22d993b7c076c591cde13105b8f6707433945842 (patch)
tree0f0158c2e59d5fa502a615cf2ae08264f10ee859
parenteb0c91b62ae10cbf8b6c787313855a9efd63f2f0 (diff)
Raise 404 error for not route found
-rw-r--r--src/main.rs2
-rw-r--r--src/routes/mod.rs7
2 files changed, 9 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 59ffb24..4f548d2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -7,6 +7,7 @@ mod pagination;
mod routes;
use axum::{
+ handler::Handler,
http::{header, Request},
Router,
};
@@ -43,6 +44,7 @@ async fn create_app() -> Router {
Router::new()
// Map all routes to `/v1/*` namespace
.nest("/v1", api_routes)
+ .fallback(crate::routes::page_404.into_service())
// Mark the `Authorization` request header as sensitive so it doesn't
// show in logs.
.layer(SetSensitiveHeadersLayer::new(std::iter::once(
diff --git a/src/routes/mod.rs b/src/routes/mod.rs
index 7e61662..0de7291 100644
--- a/src/routes/mod.rs
+++ b/src/routes/mod.rs
@@ -1,3 +1,10 @@
pub mod auth;
pub mod model;
pub mod user;
+
+use crate::errors::AppError;
+use axum::response::IntoResponse;
+
+pub async fn page_404() -> impl IntoResponse {
+ AppError::NotFound("Route not found".to_string())
+}