jmserver/src/v1/mod.rs
Timo Ley 1577b9a1ca
All checks were successful
continuous-integration/drone/push Build is passing
started v3.0.0 development
2022-07-19 21:11:13 +02:00

27 lines
561 B
Rust

mod error;
pub mod models;
mod routes;
use async_trait::async_trait;
use axum::extract::{FromRequest, RequestParts};
pub use routes::routes;
use serde::de::DeserializeOwned;
use crate::error::APIError;
pub struct Query<T>(pub T);
#[async_trait]
impl<T, B> FromRequest<B> for Query<T>
where
T: DeserializeOwned,
B: Send,
{
type Rejection = APIError;
async fn from_request(req: &mut RequestParts<B>) -> Result<Self, Self::Rejection> {
let query = axum::extract::Query::<T>::from_request(req).await?;
Ok(Self(query.0))
}
}