[fractal] API, directory: Call functions directly instead of using the loop



commit 66e03f578d6b7f55f06af980bb1c5f256d086f37
Author: Alejandro Domínguez <adomu net-c com>
Date:   Fri Apr 17 08:48:25 2020 +0200

    API, directory: Call functions directly instead of using the loop

 fractal-gtk/src/appop/directory.rs      | 20 +++++++++++++-------
 fractal-matrix-api/src/backend/mod.rs   |  9 +--------
 fractal-matrix-api/src/backend/types.rs |  1 -
 3 files changed, 14 insertions(+), 16 deletions(-)
---
diff --git a/fractal-gtk/src/appop/directory.rs b/fractal-gtk/src/appop/directory.rs
index 842df7a9..05661378 100644
--- a/fractal-gtk/src/appop/directory.rs
+++ b/fractal-gtk/src/appop/directory.rs
@@ -1,10 +1,14 @@
 use gtk;
 use gtk::prelude::*;
 use libhandy::Column;
+use std::thread;
+
+use fractal_api::backend::directory;
+use fractal_api::util::ResultExpectLog;
 
 use crate::appop::AppOp;
 
-use crate::backend::BKCommand;
+use crate::backend::{BKCommand, BKResponse};
 use crate::widgets;
 
 use crate::types::Room;
@@ -13,12 +17,14 @@ use fractal_api::r0::thirdparty::get_supported_protocols::ProtocolInstance;
 impl AppOp {
     pub fn init_protocols(&self) {
         let login_data = unwrap_or_unit_return!(self.login_data.clone());
-        self.backend
-            .send(BKCommand::DirectoryProtocols(
-                login_data.server_url,
-                login_data.access_token,
-            ))
-            .unwrap();
+        let tx = self.backend.clone();
+        thread::spawn(move || {
+            let query = directory::protocols(login_data.server_url, login_data.access_token);
+            tx.send(BKCommand::SendBKResponse(BKResponse::DirectoryProtocols(
+                query,
+            )))
+            .expect_log("Connection closed");
+        });
     }
 
     pub fn set_protocols(&self, protocols: Vec<ProtocolInstance>) {
diff --git a/fractal-matrix-api/src/backend/mod.rs b/fractal-matrix-api/src/backend/mod.rs
index ef015bbf..16fa0e99 100644
--- a/fractal-matrix-api/src/backend/mod.rs
+++ b/fractal-matrix-api/src/backend/mod.rs
@@ -13,7 +13,7 @@ use crate::globals;
 
 use self::types::ThreadPool;
 
-mod directory;
+pub mod directory;
 mod media;
 pub mod register;
 mod room;
@@ -269,13 +269,6 @@ impl Backend {
             ),
 
             // Directory module
-            Ok(BKCommand::DirectoryProtocols(server, access_token)) => {
-                thread::spawn(move || {
-                    let query = directory::protocols(server, access_token);
-                    tx.send(BKResponse::DirectoryProtocols(query))
-                        .expect_log("Connection closed");
-                });
-            }
             Ok(BKCommand::DirectorySearch(server, access_token, dhs, dq, dtp, more)) => {
                 let hs = match dhs {
                     ref a if a.is_empty() => None,
diff --git a/fractal-matrix-api/src/backend/types.rs b/fractal-matrix-api/src/backend/types.rs
index 0a03ef1d..90cc2f6e 100644
--- a/fractal-matrix-api/src/backend/types.rs
+++ b/fractal-matrix-api/src/backend/types.rs
@@ -46,7 +46,6 @@ pub enum BKCommand {
     SendTyping(Url, AccessToken, UserId, RoomId),
     SetRoom(Url, AccessToken, RoomId),
     ShutDown,
-    DirectoryProtocols(Url, AccessToken),
     DirectorySearch(Url, AccessToken, String, String, String, bool),
     JoinRoom(Url, AccessToken, RoomId),
     MarkAsRead(Url, AccessToken, RoomId, String),


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]