优化代码
This commit is contained in:
parent
56c5728a74
commit
1c9db648de
@ -12,7 +12,7 @@ pub struct Context {
|
||||
impl Context {
|
||||
pub fn get_account(&self) -> Option<Arc<Account>> {
|
||||
if let Some(account) = &self.account {
|
||||
return Some(account.clone());
|
||||
Some(account.clone())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
@ -20,7 +20,7 @@ impl Context {
|
||||
|
||||
pub fn get_token(&self) -> Option<Arc<String>> {
|
||||
if let Some(token) = &self.token {
|
||||
return Some(token.clone());
|
||||
Some(token.clone())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
@ -80,6 +80,6 @@ where
|
||||
return Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)));
|
||||
}
|
||||
|
||||
return Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)));
|
||||
Err(ResErr::params(message!(lang_tag, MessageId::InvalidParams)))
|
||||
}
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response {
|
||||
tracing::error!("无效的 token, 解析失败");
|
||||
// 解析语言
|
||||
let language = request_util::get_lang_tag(req.headers());
|
||||
return ResErr::auth(message!(&language, MessageId::BadRequest)).into_response();
|
||||
ResErr::auth(message!(&language, MessageId::BadRequest)).into_response()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -56,10 +56,7 @@ fn header_to_string(h: &HeaderMap) -> String {
|
||||
map.insert(k.to_string(), vals);
|
||||
}
|
||||
|
||||
match serde_json::to_string(&map) {
|
||||
Ok(v) => v,
|
||||
Err(_) => String::from("<none>"),
|
||||
}
|
||||
serde_json::to_string(&map).unwrap_or_else(|_| String::from("<none>"))
|
||||
}
|
||||
|
||||
async fn drain_body(request: Request, next: Next) -> Result<(Response, Option<String>), ResErr> {
|
||||
@ -86,7 +83,7 @@ async fn drain_body(request: Request, next: Next) -> Result<(Response, Option<St
|
||||
|
||||
let (parts, body) = request.into_parts();
|
||||
|
||||
// this wont work if the body is an long running stream
|
||||
// this won't work if the body is a long-running stream
|
||||
let bytes = match body.collect().await {
|
||||
Ok(v) => v.to_bytes(),
|
||||
Err(err) => {
|
||||
|
@ -282,4 +282,4 @@ impl ResErr {
|
||||
}
|
||||
}
|
||||
|
||||
pub type ResResult<T> = std::result::Result<T, ResErr>;
|
||||
pub type ResResult<T> = Result<T, ResErr>;
|
||||
|
@ -47,13 +47,13 @@ pub struct WeChatBaseResult {
|
||||
/// 微信登录登录
|
||||
///
|
||||
/// 登录成功
|
||||
/// ```
|
||||
/// ```json
|
||||
/// {
|
||||
/// "openid": "odbV75XGs-Lwj0CmOxwIXjdDfVEY",
|
||||
/// "session_key": "iM6cs8nhw0VtAty16RjswQ==",
|
||||
/// "unionid": null,
|
||||
/// "errcode": null,
|
||||
/// "errmsg": null
|
||||
/// "openid": "odbV75XGs-Lwj0CmOxwIXjdDfVEY",
|
||||
/// "session_key": "iM6cs8nhw0VtAty16RjswQ==",
|
||||
/// "unionid": null,
|
||||
/// "errcode": null,
|
||||
/// "errmsg": null
|
||||
/// }
|
||||
/// ```
|
||||
#[derive(Deserialize, Serialize, Debug, Clone, Responsable)]
|
||||
|
@ -21,7 +21,7 @@ struct RouteArgs {
|
||||
|
||||
// 实现 Parse trait 以支持解析参数
|
||||
impl Parse for RouteArgs {
|
||||
fn parse(input: ParseStream) -> syn::parse::Result<Self> {
|
||||
fn parse(input: ParseStream) -> Result<Self> {
|
||||
// 使用Meta解析 begin
|
||||
// let args = Punctuated::<syn::Meta, syn::Token![,]>::parse_terminated(input)?;
|
||||
// let mut path = None;
|
||||
@ -46,7 +46,7 @@ impl Parse for RouteArgs {
|
||||
// let path = path.expect("Expected a path argument");
|
||||
// 使用Meta解析 end
|
||||
|
||||
let args = Punctuated::<syn::Expr, syn::Token![,]>::parse_terminated(input)?;
|
||||
let args = Punctuated::<Expr, Token![,]>::parse_terminated(input)?;
|
||||
|
||||
let mut path = None;
|
||||
let mut methods = Vec::new();
|
||||
@ -87,12 +87,12 @@ impl Parse for RouteArgs {
|
||||
}
|
||||
|
||||
struct Args {
|
||||
vars: Vec<syn::Expr>,
|
||||
vars: Vec<Expr>,
|
||||
}
|
||||
|
||||
impl Parse for Args {
|
||||
fn parse(input: ParseStream) -> syn::parse::Result<Self> {
|
||||
let vars = Punctuated::<syn::Expr, syn::Token![,]>::parse_terminated(input)?;
|
||||
fn parse(input: ParseStream) -> Result<Self> {
|
||||
let vars = Punctuated::<Expr, Token![,]>::parse_terminated(input)?;
|
||||
|
||||
Ok(Args {
|
||||
vars: vars.into_iter().collect(),
|
||||
@ -101,18 +101,18 @@ impl Parse for Args {
|
||||
}
|
||||
|
||||
impl Args {
|
||||
pub fn get_arg(&self, index: usize) -> syn::Result<Option<syn::Expr>> {
|
||||
pub fn get_arg(&self, index: usize) -> Result<Option<Expr>> {
|
||||
match self.vars.get(index) {
|
||||
Some(var) => Ok(Some(var.to_owned())),
|
||||
None => {
|
||||
// 第一个参数使路由url,必须存在,其他的参数根据实际需求进一步解析
|
||||
if index != 0 {
|
||||
return Ok(None);
|
||||
Ok(None)
|
||||
} else {
|
||||
return Err(syn::Error::new(
|
||||
Err(Error::new(
|
||||
Span::call_site().into(),
|
||||
"route must have one argument",
|
||||
));
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -130,13 +130,13 @@ pub fn gen_route(attr: TokenStream, item: TokenStream, method: &str) -> TokenStr
|
||||
|
||||
let mut method_routers = Vec::new();
|
||||
if methods.is_empty() {
|
||||
let method_name = syn::Ident::new(&method.to_lowercase(), method.span());
|
||||
let method_name = Ident::new(&method.to_lowercase(), method.span());
|
||||
method_routers.push(quote! {
|
||||
(#path, axum::routing::#method_name(#ident::#ident))
|
||||
});
|
||||
} else {
|
||||
for method in methods {
|
||||
let method_name = syn::Ident::new(&method.to_lowercase(), method.span());
|
||||
let method_name = Ident::new(&method.to_lowercase(), method.span());
|
||||
method_routers.push(quote! {
|
||||
(#path, axum::routing::#method_name(#ident::#ident))
|
||||
});
|
||||
|
@ -23,7 +23,7 @@ struct TaskArgs {
|
||||
// 实现 Parse trait 以支持解析参数
|
||||
impl Parse for TaskArgs {
|
||||
fn parse(input: ParseStream) -> Result<Self> {
|
||||
let args = Punctuated::<syn::Meta, syn::Token![,]>::parse_terminated(input)?;
|
||||
let args = Punctuated::<Meta, Token![,]>::parse_terminated(input)?;
|
||||
|
||||
let mut task_args = TaskArgs {
|
||||
cron: String::from(""),
|
||||
@ -61,7 +61,7 @@ impl Parse for TaskArgs {
|
||||
}
|
||||
|
||||
if task_args.cron.is_empty() && task_args.interval <= 0 {
|
||||
return Err(syn::Error::new(
|
||||
return Err(Error::new(
|
||||
Span::call_site().into(),
|
||||
"必须设置有效的cron表达式或者interval参数",
|
||||
));
|
||||
|
Loading…
Reference in New Issue
Block a user