diff options
| author | Tolmachev Igor <me@igorek.dev> | 2025-09-01 13:32:05 +0300 |
|---|---|---|
| committer | Tolmachev Igor <me@igorek.dev> | 2025-09-01 13:32:05 +0300 |
| commit | b9d75e22db72aabf47815e381aa6432c1bff3877 (patch) | |
| tree | b6b0741461484c36919a3ec74fb075c77e867a59 /src/extract/json.rs | |
| parent | 56d155ac2de9261575d7fd4671a08b95cd16e6bb (diff) | |
| download | queue_server-b9d75e22db72aabf47815e381aa6432c1bff3877.tar.gz queue_server-b9d75e22db72aabf47815e381aa6432c1bff3877.zip | |
Add account endpoints
Diffstat (limited to 'src/extract/json.rs')
| -rw-r--r-- | src/extract/json.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/extract/json.rs b/src/extract/json.rs new file mode 100644 index 0000000..cfde15b --- /dev/null +++ b/src/extract/json.rs | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | use axum::extract::rejection::JsonRejection; | ||
| 2 | use axum::extract::{FromRequest, Request}; | ||
| 3 | |||
| 4 | use crate::error::ApiError; | ||
| 5 | |||
| 6 | pub struct ApiJson<T>(pub T); | ||
| 7 | |||
| 8 | impl<S, T> FromRequest<S> for ApiJson<T> | ||
| 9 | where | ||
| 10 | axum::Json<T>: FromRequest<S, Rejection = JsonRejection>, | ||
| 11 | S: Send + Sync, | ||
| 12 | { | ||
| 13 | type Rejection = ApiError; | ||
| 14 | |||
| 15 | #[inline] | ||
| 16 | async fn from_request(req: Request, state: &S) -> Result<Self, Self::Rejection> { | ||
| 17 | Ok(Self(axum::Json::<T>::from_request(req, state).await?.0)) | ||
| 18 | } | ||
| 19 | } | ||
