refactor: refactor condition

This commit is contained in:
xfy
2025-03-26 15:48:16 +08:00
parent 01bd1128c4
commit b38de3a325
3 changed files with 31 additions and 33 deletions

View File

@ -75,10 +75,11 @@ impl CandyHandler<'_> {
let server = format!("{}/{}", NAME, VERSION); let server = format!("{}/{}", NAME, VERSION);
headers.insert("Server", server.parse()?); headers.insert("Server", server.parse()?);
// config headers overrite // config headers overrite
if let Some(c_headers) = &self.host.headers { let Some(c_headers) = &self.host.headers else {
for (k, v) in c_headers { return Ok(());
headers.insert(k.as_str(), v.parse()?); };
} for (k, v) in c_headers {
headers.insert(k.as_str(), v.parse()?);
} }
Ok(()) Ok(())
} }
@ -174,12 +175,13 @@ impl CandyHandler<'_> {
// find resource local file path // find resource local file path
let mut path = None; let mut path = None;
for index in router.index.iter() { for index in router.index.iter() {
if let Some(root) = &router.root { let Some(root) = &router.root else {
let p = parse_assets_path(assets_path, root, index); continue;
if Path::new(&p).exists() { };
path = Some(p); let p = parse_assets_path(assets_path, root, index);
break; if Path::new(&p).exists() {
} path = Some(p);
break;
} }
} }
let path = match path { let path = match path {
@ -195,12 +197,11 @@ impl CandyHandler<'_> {
Method::POST => handle_get(req, res, &path).await?, Method::POST => handle_get(req, res, &path).await?,
// Return the 404 Not Found for other routes. // Return the 404 Not Found for other routes.
_ => { _ => {
if let Some(err_page) = &router.error_page { let Some(err_page) = &router.error_page else {
let res = res.status(err_page.status); return Ok(not_found());
handle_get(req, res, &err_page.page).await? };
} else { let res = res.status(err_page.status);
not_found() handle_get(req, res, &err_page.page).await?
}
} }
}; };
Ok(res) Ok(res)
@ -364,16 +365,14 @@ pub async fn handle_not_found(
router: &SettingRoute, router: &SettingRoute,
assets_path: &str, assets_path: &str,
) -> Result<Response<CandyBody<Bytes>>> { ) -> Result<Response<CandyBody<Bytes>>> {
let res = if let Some(err_page) = &router.error_page { let Some(err_page) = &router.error_page else {
let res = res.status(err_page.status); return Ok(not_found());
if let Some(root) = &router.root {
let path = parse_assets_path(assets_path, root, &err_page.page);
handle_get(req, res, &path).await?
} else {
not_found()
}
} else {
not_found()
}; };
let Some(root) = &router.root else {
return Ok(not_found());
};
let res = res.status(err_page.status);
let path = parse_assets_path(assets_path, root, &err_page.page);
let res = handle_get(req, res, &path).await?;
Ok(res) Ok(res)
} }

View File

@ -191,9 +191,7 @@ async fn handle_connection(
}; };
if host.certificate.is_some() && host.certificate_key.is_some() { if host.certificate.is_some() && host.certificate_key.is_some() {
let tls_acceptor = if let Some(tls_acceptor) = tls_acceptor { let Some(tls_acceptor) = tls_acceptor else {
tls_acceptor
} else {
warn!("tls_acceptor is None"); warn!("tls_acceptor is None");
return; return;
}; };

View File

@ -64,10 +64,11 @@ pub fn find_route<'a>(
let index = i + 1; let index = i + 1;
let path = &all_chars[..index]; let path = &all_chars[..index];
let path_str = path.iter().collect::<String>(); let path_str = path.iter().collect::<String>();
if let Some(router) = route_map.get(&path_str) { let Some(router) = route_map.get(&path_str) else {
last_router = Some((router, &req_path[index..])); continue;
break; };
} last_router = Some((router, &req_path[index..]));
break;
} }
let (router, assets_path) = last_router.ok_or(Error::NotFound(not_found_err.into()))?; let (router, assets_path) = last_router.ok_or(Error::NotFound(not_found_err.into()))?;