Cleanup appservice events after removing the appservice

This commit is contained in:
Torsten Flammiger 2022-01-31 09:27:31 +01:00
parent fb2a7ebf66
commit cc13112592
2 changed files with 41 additions and 3 deletions

View file

@ -112,7 +112,18 @@ impl Admin {
guard.appservice.register_appservice(yaml).unwrap(); // TODO handle error
}
AdminCommand::UnregisterAppservice(service_name) => {
guard.appservice.unregister_appservice(&service_name).unwrap(); // TODO: see above
if let Ok(_) = guard.appservice.unregister_appservice(&service_name) {
if let Ok(_) = guard.sending.cleanup_events(&service_name) {
let msg: String = format!("OK. Appservice {} removed", service_name);
send_message(RoomMessageEventContent::text_plain(msg), guard, &state_lock);
} else {
let msg: String = format!("WARN: Appservice {} removed, but failed to cleanup events", service_name);
send_message(RoomMessageEventContent::text_plain(msg), guard, &state_lock);
}
} else {
let msg: String = format!("ERR. Appservice {} not removed", service_name);
send_message(RoomMessageEventContent::text_plain(msg), guard, &state_lock);
}
}
AdminCommand::ListAppservices => {
if let Ok(appservices) = guard.appservice.iter_ids().map(|ids| ids.collect::<Vec<_>>()) {