aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-08-06 14:27:20 +0200
committermetamuffin <metamuffin@disroot.org>2023-08-06 14:27:20 +0200
commitdfdce26961ed87d471d9c2a8d2719fbbe78fb9fb (patch)
tree50ed561f5a1fa655b692b74750bf24b494b8355f
parentc3c4734beb7b9650936b3c74df21d72a597cd94c (diff)
downloadjellything-dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb.tar
jellything-dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb.tar.bz2
jellything-dfdce26961ed87d471d9c2a8d2719fbbe78fb9fb.tar.zst
delete cache from admin
-rw-r--r--server/src/routes/mod.rs5
-rw-r--r--server/src/routes/ui/admin/mod.rs22
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())),
+ ),
+ )
+}