[fractal] Get supported protocols through matrix-sdk
- From: Alexandre Franke <afranke src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] Get supported protocols through matrix-sdk
- Date: Tue, 1 Dec 2020 20:22:01 +0000 (UTC)
commit c850cb188c8f939ee190b10a541c82e0bb2cfa56
Author: Alejandro DomÃnguez <adomu net-c com>
Date: Fri Sep 25 02:10:25 2020 +0200
Get supported protocols through matrix-sdk
fractal-gtk/src/appop/directory.rs | 15 +++----
fractal-gtk/src/backend/directory.rs | 32 ++++++--------
fractal-matrix-api/src/meson.build | 2 -
fractal-matrix-api/src/r0.rs | 1 -
fractal-matrix-api/src/r0/thirdparty.rs | 1 -
.../src/r0/thirdparty/get_supported_protocols.rs | 51 ----------------------
6 files changed, 19 insertions(+), 83 deletions(-)
---
diff --git a/fractal-gtk/src/appop/directory.rs b/fractal-gtk/src/appop/directory.rs
index a2cf8064..ee9f6c4c 100644
--- a/fractal-gtk/src/appop/directory.rs
+++ b/fractal-gtk/src/appop/directory.rs
@@ -1,5 +1,4 @@
use gtk::prelude::*;
-use std::thread;
use crate::backend::{directory, HandleError};
@@ -11,16 +10,14 @@ use crate::widgets;
use super::RoomSearchPagination;
use crate::model::room::Room;
use fractal_api::directory::RoomNetwork;
-use fractal_api::r0::thirdparty::get_supported_protocols::ProtocolInstance;
+use fractal_api::thirdparty::ProtocolInstance;
impl AppOp {
pub fn init_protocols(&self) {
- let login_data = unwrap_or_unit_return!(self.login_data.clone());
- thread::spawn(move || {
- match directory::protocols(
- login_data.session_client.homeserver().clone(),
- login_data.access_token,
- ) {
+ let session_client =
+ unwrap_or_unit_return!(self.login_data.as_ref().map(|ld| ld.session_client.clone()));
+ RUNTIME.spawn(async move {
+ match directory::protocols(session_client).await {
Ok(protocols) => {
APPOP!(set_protocols, (protocols));
}
@@ -40,7 +37,7 @@ impl AppOp {
combo.clear();
for p in protocols {
- combo.insert_with_values(None, &[0, 1], &[&p.desc, &p.id]);
+ combo.insert_with_values(None, &[0, 1], &[&p.desc, &p.network_id]);
}
}
diff --git a/fractal-gtk/src/backend/directory.rs b/fractal-gtk/src/backend/directory.rs
index 405bacbb..58c02e50 100644
--- a/fractal-gtk/src/backend/directory.rs
+++ b/fractal-gtk/src/backend/directory.rs
@@ -1,25 +1,21 @@
use fractal_api::identifiers::{Error as IdentifierError, ServerName};
-use fractal_api::reqwest::Error as ReqwestError;
-use fractal_api::url::{ParseError as UrlError, Url};
+use fractal_api::url::ParseError as UrlError;
use fractal_api::Client as MatrixClient;
use fractal_api::Error as MatrixError;
use std::convert::{TryFrom, TryInto};
use crate::globals;
-use crate::backend::{MediaError, HTTP_CLIENT};
+use crate::backend::MediaError;
use crate::util::cache_dir_path;
use crate::model::room::Room;
use fractal_api::api::r0::directory::get_public_rooms_filtered::Request as PublicRoomsFilteredRequest;
+use fractal_api::api::r0::thirdparty::get_protocols::Request as GetProtocolsRequest;
use fractal_api::assign;
use fractal_api::directory::Filter as PublicRoomsFilter;
use fractal_api::directory::RoomNetwork;
-use fractal_api::r0::thirdparty::get_supported_protocols::request as get_supported_protocols;
-use fractal_api::r0::thirdparty::get_supported_protocols::Parameters as SupportedProtocolsParameters;
-use fractal_api::r0::thirdparty::get_supported_protocols::ProtocolInstance;
-use fractal_api::r0::thirdparty::get_supported_protocols::Response as SupportedProtocolsResponse;
-use fractal_api::r0::AccessToken;
+use fractal_api::thirdparty::ProtocolInstance;
use super::{dw_media, ContentType, HandleError};
use crate::app::App;
@@ -29,8 +25,8 @@ use crate::APPOP;
#[derive(Debug)]
pub struct DirectoryProtocolsError;
-impl From<ReqwestError> for DirectoryProtocolsError {
- fn from(_: ReqwestError) -> Self {
+impl From<MatrixError> for DirectoryProtocolsError {
+ fn from(_: MatrixError) -> Self {
Self
}
}
@@ -43,17 +39,15 @@ impl HandleError for DirectoryProtocolsError {
}
}
-pub fn protocols(
- base: Url,
- access_token: AccessToken,
+pub async fn protocols(
+ session_client: MatrixClient,
) -> Result<Vec<ProtocolInstance>, DirectoryProtocolsError> {
- let params = SupportedProtocolsParameters { access_token };
- let request = get_supported_protocols(base, ¶ms)?;
- let response: SupportedProtocolsResponse = HTTP_CLIENT.get_client().execute(request)?.json()?;
-
- Ok(response
+ Ok(session_client
+ .send(GetProtocolsRequest::new())
+ .await?
+ .protocols
.into_iter()
- .flat_map(|(_, protocol)| protocol.instances.into_iter())
+ .flat_map(|(_, protocol)| protocol.instances)
.collect())
}
diff --git a/fractal-matrix-api/src/meson.build b/fractal-matrix-api/src/meson.build
index 91b4cb64..f998b126 100644
--- a/fractal-matrix-api/src/meson.build
+++ b/fractal-matrix-api/src/meson.build
@@ -12,13 +12,11 @@ api_sources = files(
'r0/contact/request_verification_token_msisdn.rs',
'r0/server/domain_info.rs',
'r0/sync/sync_events.rs',
- 'r0/thirdparty/get_supported_protocols.rs',
'r0/account.rs',
'r0/contact.rs',
'r0/filter.rs',
'r0/server.rs',
'r0/sync.rs',
- 'r0/thirdparty.rs',
'identity.rs',
'lib.rs',
'r0.rs',
diff --git a/fractal-matrix-api/src/r0.rs b/fractal-matrix-api/src/r0.rs
index e658cd7d..fc097102 100644
--- a/fractal-matrix-api/src/r0.rs
+++ b/fractal-matrix-api/src/r0.rs
@@ -3,7 +3,6 @@ pub mod contact;
pub mod filter;
pub mod server;
pub mod sync;
-pub mod thirdparty;
use serde::{Deserialize, Serialize, Serializer};
use std::convert::TryFrom;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]