feat: make error pages optional (resolves #6)
Diff
src/error_page.rs | 28 +++++++++++++++++++++-------
src/staticfiles.rs | 2 +-
2 files changed, 22 insertions(+), 8 deletions(-)
@@ -9,19 +9,33 @@ use std::path::Path;
pub struct ErrorPage {
pub page50x: std::string::String,
pub page404: std::string::String,
pub page404: String,
pub page50x: String,
}
impl ErrorPage {
pub fn new<P: AsRef<Path>>(page_50x_path: P, page_404_path: P) -> ErrorPage {
let page50x = fs::read_to_string(page_50x_path).unwrap();
let page404 = fs::read_to_string(page_404_path).unwrap();
pub fn new<P: AsRef<Path>>(page_404_path: P, page_50x_path: P) -> ErrorPage {
let page404: String;
let page50x: String;
if Path::new(&page_404_path.as_ref()).exists() {
page404 = fs::read_to_string(page_404_path).unwrap();
} else {
page404 = String::from("<h2>404</h2><p>Content could not found</p>");
}
if Path::new(&page_50x_path.as_ref()).exists() {
page50x = fs::read_to_string(page_50x_path).unwrap();
} else {
page50x = String::from(
"<h2>50x</h2><p>Service is temporarily unavailable due an unexpected error</p>",
);
}
ErrorPage { page50x, page404 }
ErrorPage { page404, page50x }
}
}
@@ -45,8 +45,8 @@ impl StaticFiles {
chain.link_after(GzipMiddleware);
chain.link_after(Logger);
chain.link_after(ErrorPage::new(
self.opts.page_50x_path.as_str(),
self.opts.page_404_path.as_str(),
self.opts.page_50x_path.as_str(),
));
chain
}