修改校验错误消息处理逻辑

This commit is contained in:
李运家 2024-06-13 15:51:33 +08:00
parent a04c65848a
commit 6572f48696

View File

@ -5,40 +5,43 @@ use validator::Validate;
use super::response::{ResData, ResErr, ResResult};
pub fn validate_params(params: &impl Validate, _local: &str) -> ResResult<ResData<()>> {
params.validate().map_err(|e| {
let mut errors = vec![];
for (_, err) in e.errors().iter() {
match err {
validator::ValidationErrorsKind::Struct(err) => {
err.field_errors().iter().for_each(|(_field, errs)| {
errs.iter().for_each(|e| {
if let Some(Cow::Owned(msg)) = e.message.clone() {
errors.push(msg);
}
});
});
},
validator::ValidationErrorsKind::List(err) => {
for (_, err) in err.iter() {
let validate_err = params.validate();
match validate_err {
Ok(_) => Result::Ok(ResData::none()),
Err(err) => {
let mut errors = vec![];
for (_, err) in err.errors().iter() {
match err {
validator::ValidationErrorsKind::Struct(err) => {
err.field_errors().iter().for_each(|(_field, errs)| {
errs.iter().for_each(|e| {
if let Some(Cow::Owned(msg)) = e.message.clone() {
errors.push(msg);
}
let msg = e.message.clone().unwrap_or_default();
let msg_str = msg.to_string();
errors.push(msg_str)
});
});
}
},
validator::ValidationErrorsKind::Field(err) => {
err.iter().for_each(|e| {
if let Some(Cow::Owned(msg)) = e.message.clone() {
errors.push(msg);
},
validator::ValidationErrorsKind::List(err) => {
for (_, err) in err.iter() {
err.field_errors().iter().for_each(|(_field, errs)| {
errs.iter().for_each(|e| {
let msg = e.message.clone().unwrap_or_default();
let msg_str = msg.to_string();
errors.push(msg_str)
});
});
}
});
},
};
}
ResErr::params(errors.join(";"))
})?;
Result::Ok(ResData::none())
},
validator::ValidationErrorsKind::Field(err) => {
err.iter().for_each(|e| {
let msg = e.message.clone().unwrap_or_default();
let msg_str = msg.to_string();
errors.push(msg_str)
});
},
};
}
Err(ResErr::params(errors.join(";")))
},
}
}