diff options
author | metamuffin <metamuffin@disroot.org> | 2023-08-06 14:27:20 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-08-06 14:27:20 +0200 |
commit | dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb (patch) | |
tree | 50ed561f5a1fa655b692b74750bf24b494b8355f /server/src | |
parent | c3c4734beb7b9650936b3c74df21d72a597cd94c (diff) | |
download | jellything-dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb.tar jellything-dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb.tar.bz2 jellything-dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb.tar.zst |
delete cache from admin
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/routes/mod.rs | 5 | ||||
-rw-r--r-- | server/src/routes/ui/admin/mod.rs | 22 |
2 files changed, 25 insertions, 2 deletions
diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs index cdb7424..e898c8f 100644 --- a/server/src/routes/mod.rs +++ b/server/src/routes/mod.rs @@ -23,8 +23,8 @@ use ui::{ settings::{r_account_settings, r_account_settings_post}, }, admin::{ - log::r_admin_log, r_admin_dashboard, r_admin_import, r_admin_invite, r_admin_remove_invite, - r_admin_remove_user, + log::r_admin_log, r_admin_dashboard, r_admin_delete_cache, r_admin_import, r_admin_invite, + r_admin_remove_invite, r_admin_remove_user, }, assets::r_item_assets, browser::r_all_items, @@ -105,6 +105,7 @@ pub fn build_rocket( r_admin_remove_user, r_admin_remove_invite, r_admin_import, + r_admin_delete_cache, r_admin_log, r_account_settings, r_account_settings_post, diff --git a/server/src/routes/ui/admin/mod.rs b/server/src/routes/ui/admin/mod.rs index f779700..c6a89ca 100644 --- a/server/src/routes/ui/admin/mod.rs +++ b/server/src/routes/ui/admin/mod.rs @@ -18,6 +18,7 @@ use crate::{ uri, }; use anyhow::anyhow; +use jellybase::CONF; use rand::Rng; use rocket::{form::Form, get, post, FromForm, State}; use std::time::Instant; @@ -52,6 +53,9 @@ pub fn admin_dashboard<'a>( form[method="POST", action=uri!(r_admin_import())] { input[type="submit", value="(Re-)Import Library"]; } + form[method="POST", action=uri!(r_admin_delete_cache())] { + input[type="submit", value="Delete Cache"]; + } h2 { "Invitations" } form[method="POST", action=uri!(r_admin_invite())] { input[type="submit", value="Generate new invite code"]; @@ -146,3 +150,21 @@ pub async fn r_admin_import( ), ) } + +#[post("/admin/delete_cache")] +pub async fn r_admin_delete_cache( + session: AdminSession, + database: &State<Database>, +) -> MyResult<DynLayoutPage<'static>> { + drop(session); + let t = Instant::now(); + let r = tokio::fs::remove_dir_all(&CONF.cache_path).await; + tokio::fs::create_dir(&CONF.cache_path).await?; + admin_dashboard( + &database, + Some( + r.map_err(|e| e.into()) + .map(|_| format!("Cache deleted; took {:?}", t.elapsed())), + ), + ) +} |