add not_found catcher for 404 errors

This commit is contained in:
Stefan Melmuk
2022-09-25 04:02:16 +02:00
parent 9c891baad1
commit acb5ab08a8
3 changed files with 16 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
use std::path::{Path, PathBuf};
use rocket::serde::json::Json;
use rocket::{fs::NamedFile, http::ContentType, Route};
use rocket::{fs::NamedFile, http::ContentType, Catcher, Route};
use serde_json::Value;
use crate::{
@@ -21,6 +21,19 @@ pub fn routes() -> Vec<Route> {
}
}
pub fn catchers() -> Vec<Catcher> {
if CONFIG.web_vault_enabled() {
catchers![not_found]
} else {
catchers![]
}
}
#[catch(404)]
async fn not_found() -> Cached<Option<NamedFile>> {
Cached::short(NamedFile::open(Path::new(&CONFIG.web_vault_folder()).join("404.html")).await.ok(), false)
}
#[get("/")]
async fn web_index() -> Cached<Option<NamedFile>> {
Cached::short(NamedFile::open(Path::new(&CONFIG.web_vault_folder()).join("index.html")).await.ok(), false)