add validate_again_ex
This commit is contained in:
24
src/test.rs
24
src/test.rs
@@ -521,10 +521,7 @@ async fn extract_query(Valid(Query(parameters)): Valid<Query<Parameters>>) -> St
|
|||||||
async fn extract_query_ex(
|
async fn extract_query_ex(
|
||||||
ValidEx(Query(parameters), args): ValidEx<Query<ParametersEx>, ParametersExValidationArguments>,
|
ValidEx(Query(parameters), args): ValidEx<Query<ParametersEx>, ParametersExValidationArguments>,
|
||||||
) -> StatusCode {
|
) -> StatusCode {
|
||||||
match parameters.validate_args(args.get()) {
|
validate_again_ex(parameters, args.get())
|
||||||
Ok(_) => StatusCode::OK,
|
|
||||||
Err(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn extract_form(Valid(Form(parameters)): Valid<Form<Parameters>>) -> StatusCode {
|
async fn extract_form(Valid(Form(parameters)): Valid<Form<Parameters>>) -> StatusCode {
|
||||||
@@ -538,10 +535,7 @@ async fn extract_json(Valid(Json(parameters)): Valid<Json<Parameters>>) -> Statu
|
|||||||
async fn extract_json_ex(
|
async fn extract_json_ex(
|
||||||
ValidEx(Json(parameters), args): ValidEx<Json<ParametersEx>, ParametersExValidationArguments>,
|
ValidEx(Json(parameters), args): ValidEx<Json<ParametersEx>, ParametersExValidationArguments>,
|
||||||
) -> StatusCode {
|
) -> StatusCode {
|
||||||
match parameters.validate_args(args.get()) {
|
validate_again_ex(parameters, args.get())
|
||||||
Ok(_) => StatusCode::OK,
|
|
||||||
Err(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn validate_again<V: Validate>(validate: V) -> StatusCode {
|
fn validate_again<V: Validate>(validate: V) -> StatusCode {
|
||||||
@@ -555,6 +549,20 @@ fn validate_again<V: Validate>(validate: V) -> StatusCode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn validate_again_ex<'v, V: ValidateArgs<'v>>(
|
||||||
|
validate: V,
|
||||||
|
args: <V as ValidateArgs<'v>>::Args,
|
||||||
|
) -> StatusCode {
|
||||||
|
// The `Valid` extractor has validated the `parameters` once,
|
||||||
|
// it should have returned `400 BAD REQUEST` if the `parameters` were invalid,
|
||||||
|
// Let's validate them again to check if the `Valid` extractor works well.
|
||||||
|
// If it works properly, this function will never return `500 INTERNAL SERVER ERROR`
|
||||||
|
match validate.validate_args(args) {
|
||||||
|
Ok(_) => StatusCode::OK,
|
||||||
|
Err(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "typed_header")]
|
#[cfg(feature = "typed_header")]
|
||||||
mod typed_header {
|
mod typed_header {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user