use crate::utils::error::Error; use validator::Validate; use warp::{Filter, Rejection}; pub fn validate_body_filter( ) -> impl Filter + Copy { warp::body::json::().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( ) -> impl Filter + Copy { warp::query::query::().and_then(|query: T| async move { match query.validate() { Ok(_) => Ok(query), Err(e) => Err(warp::reject::custom(Error::validation_error(e))), } }) }