- NIP-42 Can be enabled in nix module or as environment variable 'CONFIG_ENABLE_AUTH' - NIP-05 Still WIP, but building up slowly
24 lines
837 B
Rust
24 lines
837 B
Rust
use crate::utils::error::Error;
|
|
use validator::Validate;
|
|
use warp::{Filter, Rejection};
|
|
|
|
pub fn validate_body_filter<T: serde::de::DeserializeOwned + Send + Validate + 'static>(
|
|
) -> impl Filter<Extract = (T,), Error = Rejection> + Copy {
|
|
warp::body::json::<T>().and_then(|query: T| async move {
|
|
match query.validate() {
|
|
Ok(_) => Ok(query),
|
|
Err(e) => Err(warp::reject::custom(Error::validation_error(e))),
|
|
}
|
|
})
|
|
}
|
|
|
|
pub fn validate_query_filter<T: serde::de::DeserializeOwned + Send + Validate + 'static>(
|
|
) -> impl Filter<Extract = (T,), Error = Rejection> + Copy {
|
|
warp::query::query::<T>().and_then(|query: T| async move {
|
|
match query.validate() {
|
|
Ok(_) => Ok(query),
|
|
Err(e) => Err(warp::reject::custom(Error::validation_error(e))),
|
|
}
|
|
})
|
|
}
|