完善query_validator

This commit is contained in:
李运家 2024-10-01 08:33:26 +08:00
parent dbe36bfbaf
commit bd3e18dd8d
3 changed files with 11 additions and 9 deletions

View File

@ -22,7 +22,7 @@ impl Feedback {
Feedback,
r#"select id, user_id, content, created_at from feedback limit $1 offset $2"#,
page_size,
page
(page - 1) * page_size
)
.fetch_all(db_pool)
.await

View File

@ -66,7 +66,10 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response {
// if account.token != token {
// return (StatusCode::UNAUTHORIZED, "Invalid token".to_string()).into_response();
// }
let language = account.account.clone().lang_tag.clone();
let mut language = account.account.clone().lang_tag.clone();
if language.is_empty() {
language = request_util::get_lang_tag(req.headers());
}
// 将Claims附加到请求扩展中以便后续处理使用
req.extensions_mut().insert(
Context {

View File

@ -3,7 +3,7 @@ use http::Request;
use i18n::{message, message_ids::MessageId};
use validator::Validate;
use crate::utils::request_util;
use crate::context::Context;
use super::response::ResErr;
@ -19,20 +19,19 @@ where
type Rejection = ResErr;
async fn from_request(req: http::Request<Body>, state: &S) -> Result<Self, Self::Rejection> {
// let context = req.extensions().get().unwrap();
let (parts, body) = req.into_parts();
let header = &parts.headers;
let query = Query::<T>::from_request(Request::from_parts(parts.clone(), body), state).await;
let lang_tag = request_util::get_lang_tag(header);
let context: &Context = parts.extensions.get().unwrap();
tracing::info!("{:?}", context);
if let Ok(Query(data)) = query {
match super::validator::validate_params(&data, &lang_tag) {
match super::validator::validate_params(&data, context.get_lang_tag()) {
Ok(_) => Ok(QueryValidator(data)),
Err(err) => Err(err),
}
} else {
let err = Err(ResErr::params(message!(&lang_tag, MessageId::InvalidParams)));
let err = Err(ResErr::params(message!(context.get_lang_tag(), MessageId::InvalidParams)));
err
}
}