diff options
Diffstat (limited to 'src/routes.rs')
| -rw-r--r-- | src/routes.rs | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/src/routes.rs b/src/routes.rs new file mode 100644 index 0000000..a269bc4 --- /dev/null +++ b/src/routes.rs @@ -0,0 +1,23 @@ +use crate::errors::AppError; +use axum::{ +    http::StatusCode, +    response::{IntoResponse, Response}, +    Json, +}; +use serde::Serialize; + +pub async fn page_404() -> impl IntoResponse { +    AppError::NotFound("Route not found".to_string()) +} + +/// Extension of `Json` which returns the CREATED status code +pub struct JsonCreate<T>(pub T); + +impl<T> IntoResponse for JsonCreate<T> +where +    T: Serialize, +{ +    fn into_response(self) -> Response { +        (StatusCode::CREATED, Json(self.0)).into_response() +    } +}  |