From 28d3b348d2fc23e6b2b78c468f682018ab472652 Mon Sep 17 00:00:00 2001
From: Torsten Flammiger <git@netfg.net>
Date: Mon, 31 Jan 2022 11:52:33 +0100
Subject: [PATCH] Return the ID of the appservice that was created by
 register_appservice

---
 src/database/admin.rs      | 5 +----
 src/database/appservice.rs | 8 +++++---
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/database/admin.rs b/src/database/admin.rs
index eef6ce10..a214796b 100644
--- a/src/database/admin.rs
+++ b/src/database/admin.rs
@@ -110,13 +110,10 @@ impl Admin {
                             }
                             AdminCommand::RegisterAppservice(yaml) => {
                                 match guard.appservice.register_appservice(yaml) {
-                                    Ok(Some(id)) => {
+                                    Ok(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);
                                     }
diff --git a/src/database/appservice.rs b/src/database/appservice.rs
index 8b29aca9..edd5009b 100644
--- a/src/database/appservice.rs
+++ b/src/database/appservice.rs
@@ -12,7 +12,9 @@ pub struct Appservice {
 }
 
 impl Appservice {
-    pub fn register_appservice(&self, yaml: serde_yaml::Value) -> Result<Option<String>> {
+    /// Registers an appservice and returns the ID to the caller
+    ///
+    pub fn register_appservice(&self, yaml: serde_yaml::Value) -> Result<String> {
         // TODO: Rumaify
         let id = yaml.get("id").unwrap().as_str().unwrap();
         self.id_appserviceregistrations.insert(
@@ -22,9 +24,9 @@ impl Appservice {
         self.cached_registrations
             .write()
             .unwrap()
-            .insert(id.to_owned(), yaml);
+            .insert(id.to_owned(), yaml.to_owned());
 
-        Ok(Some(id.to_owned()))
+        Ok(id.to_owned())
     }
 
     /// Remove an appservice registration