Files
axum-valid/src/form.rs
2023-08-04 18:50:02 +08:00

38 lines
952 B
Rust

//! # Implementation of the `HasValidate` trait for the `Form` extractor.
//!
use crate::HasValidate;
use axum::Form;
use validator::Validate;
impl<T: Validate> HasValidate for Form<T> {
type Validate = T;
fn get_validate(&self) -> &T {
&self.0
}
}
#[cfg(test)]
mod tests {
use crate::tests::{ValidTest, ValidTestParameter};
use axum::http::StatusCode;
use axum::Form;
use reqwest::RequestBuilder;
impl<T: ValidTestParameter> ValidTest for Form<T> {
const ERROR_STATUS_CODE: StatusCode = StatusCode::UNPROCESSABLE_ENTITY;
fn set_valid_request(builder: RequestBuilder) -> RequestBuilder {
builder.form(T::valid())
}
fn set_error_request(builder: RequestBuilder) -> RequestBuilder {
builder.form(T::error())
}
fn set_invalid_request(builder: RequestBuilder) -> RequestBuilder {
builder.form(T::invalid())
}
}
}