From 9346e69b872c027b635725932525f60da40f2b86 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 15 Jan 2026 22:25:25 +0000 Subject: [PATCH] Add admin command to manually remove a pusher. Signed-off-by: Jason Volk --- src/admin/query/pusher.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/admin/query/pusher.rs b/src/admin/query/pusher.rs index 1672e945..3345c048 100644 --- a/src/admin/query/pusher.rs +++ b/src/admin/query/pusher.rs @@ -11,6 +11,15 @@ pub(crate) enum PusherCommand { /// Full user ID user_id: OwnedUserId, }, + + /// - Manually delete a pusher for a user. + RemovePusher { + /// Full user ID + user_id: OwnedUserId, + + /// Pushkey + pushkey: String, + }, } #[admin_command] @@ -22,3 +31,26 @@ pub(super) async fn get_pushers(&self, user_id: OwnedUserId) -> Result { self.write_string(format!("Query completed in {query_time:?}:\n\n```rs\n{results:#?}```")) .await } + +#[admin_command] +pub(super) async fn remove_pusher(&self, user_id: OwnedUserId, pushkey: String) -> Result { + let exists = self + .services + .pusher + .get_pusher(&user_id, &pushkey) + .await + .is_ok(); + + self.services + .pusher + .delete_pusher(&user_id, &pushkey) + .await; + + let message = if exists { + "Pusher deleted." + } else { + "Pusher was not found but deletion was still attempted." + }; + + self.write_str(message).await +}