mirror of
https://github.com/DefectingCat/candy
synced 2025-07-15 16:51:34 +00:00
refactor: refactor condition
This commit is contained in:
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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()))?;
|
||||||
|
Reference in New Issue
Block a user