aboutsummaryrefslogtreecommitdiff
path: root/src/extract/json.rs
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2025-09-01 13:32:05 +0300
committerTolmachev Igor <me@igorek.dev>2025-09-01 13:32:05 +0300
commitb9d75e22db72aabf47815e381aa6432c1bff3877 (patch)
treeb6b0741461484c36919a3ec74fb075c77e867a59 /src/extract/json.rs
parent56d155ac2de9261575d7fd4671a08b95cd16e6bb (diff)
downloadqueue_server-b9d75e22db72aabf47815e381aa6432c1bff3877.tar.gz
queue_server-b9d75e22db72aabf47815e381aa6432c1bff3877.zip
Add account endpoints
Diffstat (limited to 'src/extract/json.rs')
-rw-r--r--src/extract/json.rs19
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 @@
1use axum::extract::rejection::JsonRejection;
2use axum::extract::{FromRequest, Request};
3
4use crate::error::ApiError;
5
6pub struct ApiJson<T>(pub T);
7
8impl<S, T> FromRequest<S> for ApiJson<T>
9where
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}