add error handling for register_appservice too

This commit is contained in:
Torsten Flammiger 2022-01-31 10:07:49 +01:00
parent cc13112592
commit 78502aa6b1
2 changed files with 14 additions and 3 deletions

View file

@ -109,7 +109,18 @@ impl Admin {
} }
} }
AdminCommand::RegisterAppservice(yaml) => { AdminCommand::RegisterAppservice(yaml) => {
guard.appservice.register_appservice(yaml).unwrap(); // TODO handle error match guard.appservice.register_appservice(yaml) {
Ok(Some(id)) => {
let msg: String = format!("OK. Appservice {} created", id);
send_message(RoomMessageEventContent::text_plain(msg), guard, &state_lock);
}
Ok(None) => {
send_message(RoomMessageEventContent::text_plain("WARN. Appservice created, but its ID was not returned!"), guard, &state_lock);
}
Err(_) => {
send_message(RoomMessageEventContent::text_plain("ERR: Failed register appservice. Check server log"), guard, &state_lock);
}
}
} }
AdminCommand::UnregisterAppservice(service_name) => { AdminCommand::UnregisterAppservice(service_name) => {
if let Ok(_) = guard.appservice.unregister_appservice(&service_name) { if let Ok(_) = guard.appservice.unregister_appservice(&service_name) {

View file

@ -12,7 +12,7 @@ pub struct Appservice {
} }
impl Appservice { impl Appservice {
pub fn register_appservice(&self, yaml: serde_yaml::Value) -> Result<()> { pub fn register_appservice(&self, yaml: serde_yaml::Value) -> Result<Option<String>> {
// TODO: Rumaify // TODO: Rumaify
let id = yaml.get("id").unwrap().as_str().unwrap(); let id = yaml.get("id").unwrap().as_str().unwrap();
self.id_appserviceregistrations.insert( self.id_appserviceregistrations.insert(
@ -24,7 +24,7 @@ impl Appservice {
.unwrap() .unwrap()
.insert(id.to_owned(), yaml); .insert(id.to_owned(), yaml);
Ok(()) Ok(Some(id.to_owned()))
} }
/// Remove an appservice registration /// Remove an appservice registration