diff options
Diffstat (limited to 'crates/api-base/src/version.rs')
| -rw-r--r-- | crates/api-base/src/version.rs | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/crates/api-base/src/version.rs b/crates/api-base/src/version.rs deleted file mode 100644 index 0652c6e..0000000 --- a/crates/api-base/src/version.rs +++ /dev/null @@ -1,45 +0,0 @@ -#[derive(Debug)] -#[cfg_attr( - feature = "utoipa", - derive(utoipa::ToSchema, serde::Deserialize, serde::Serialize), - schema(example = "v0"), - serde(rename_all = "lowercase") -)] -pub enum Version { - V0, -} - -#[cfg(feature = "axum")] -mod request { - use super::*; - use axum::RequestPartsExt; - use axum::extract::{FromRequestParts, Path}; - use axum::http::StatusCode; - use axum::http::request::Parts; - use axum::response::{IntoResponse, Response}; - use std::collections::HashMap; - - impl<S> FromRequestParts<S> for Version - where - S: Send + Sync, - { - type Rejection = Response; - - async fn from_request_parts( - parts: &mut Parts, - _state: &S, - ) -> Result<Self, Self::Rejection> { - let params: Path<HashMap<String, String>> = - parts.extract().await.map_err(IntoResponse::into_response)?; - - let version = params - .get("apiVersion") - .ok_or_else(|| (StatusCode::NOT_FOUND, "version param missing").into_response())?; - - match version.as_str() { - "v0" => Ok(Version::V0), - _ => Err((StatusCode::NOT_FOUND, "unknown version").into_response()), - } - } - } -} |
