[fractal] Set read markers through matrix-sdk



commit 2862137a55c77e70250b8d30b75bee7475846bc3
Author: Alejandro Domínguez <adomu net-c com>
Date:   Thu Aug 20 03:22:45 2020 +0200

    Set read markers through matrix-sdk

 fractal-gtk/src/appop/message.rs                   | 11 +++-----
 fractal-gtk/src/backend/room.rs                    | 26 ++++++-----------
 fractal-matrix-api/src/meson.build                 |  2 --
 fractal-matrix-api/src/r0.rs                       |  1 -
 fractal-matrix-api/src/r0/read_marker.rs           |  1 -
 .../src/r0/read_marker/set_read_marker.rs          | 33 ----------------------
 6 files changed, 12 insertions(+), 62 deletions(-)
---
diff --git a/fractal-gtk/src/appop/message.rs b/fractal-gtk/src/appop/message.rs
index 20868c51..4f1ab7aa 100644
--- a/fractal-gtk/src/appop/message.rs
+++ b/fractal-gtk/src/appop/message.rs
@@ -19,6 +19,7 @@ use std::fs;
 use std::path::{Path, PathBuf};
 use std::thread;
 
+use crate::app::RUNTIME;
 use crate::appop::room::Force;
 use crate::appop::AppOp;
 use crate::App;
@@ -171,15 +172,11 @@ impl AppOp {
             let last_message = room.messages.last_mut()?;
             last_message.receipt.insert(uid, 0);
 
+            let session_client = login_data.session_client;
             let room_id = last_message.room.clone();
             let event_id = last_message.id.clone()?;
-            thread::spawn(move || {
-                match room::mark_as_read(
-                    login_data.session_client.homeserver().clone(),
-                    login_data.access_token,
-                    room_id,
-                    event_id,
-                ) {
+            RUNTIME.spawn(async move {
+                match room::mark_as_read(session_client, room_id, event_id).await {
                     Ok((r, _)) => {
                         APPOP!(clear_room_notifications, (r));
                     }
diff --git a/fractal-gtk/src/backend/room.rs b/fractal-gtk/src/backend/room.rs
index cef43499..17f4c4bd 100644
--- a/fractal-gtk/src/backend/room.rs
+++ b/fractal-gtk/src/backend/room.rs
@@ -56,9 +56,6 @@ use fractal_api::r0::pushrules::get_room_rules::request as get_room_rules;
 use fractal_api::r0::pushrules::get_room_rules::Parameters as GetRoomRulesParams;
 use fractal_api::r0::pushrules::set_room_rules::request as set_room_rules;
 use fractal_api::r0::pushrules::set_room_rules::Parameters as SetRoomRulesParams;
-use fractal_api::r0::read_marker::set_read_marker::request as set_read_marker;
-use fractal_api::r0::read_marker::set_read_marker::Body as SetReadMarkerBody;
-use fractal_api::r0::read_marker::set_read_marker::Parameters as SetReadMarkerParameters;
 use fractal_api::r0::redact::redact_event::request as redact_event;
 use fractal_api::r0::redact::redact_event::Body as RedactEventBody;
 use fractal_api::r0::redact::redact_event::Parameters as RedactEventParameters;
@@ -449,31 +446,24 @@ pub async fn leave_room(
 }
 
 #[derive(Debug)]
-pub struct MarkedAsReadError(ReqwestError);
+pub struct MarkedAsReadError(MatrixError);
 
-impl From<ReqwestError> for MarkedAsReadError {
-    fn from(err: ReqwestError) -> Self {
+impl From<MatrixError> for MarkedAsReadError {
+    fn from(err: MatrixError) -> Self {
         Self(err)
     }
 }
 
 impl HandleError for MarkedAsReadError {}
 
-pub fn mark_as_read(
-    base: Url,
-    access_token: AccessToken,
+pub async fn mark_as_read(
+    session_client: MatrixClient,
     room_id: RoomId,
     event_id: EventId,
 ) -> Result<(RoomId, EventId), MarkedAsReadError> {
-    let params = SetReadMarkerParameters { access_token };
-
-    let body = SetReadMarkerBody {
-        fully_read: event_id.clone(),
-        read: Some(event_id.clone()),
-    };
-
-    let request = set_read_marker(base, &params, &body, &room_id)?;
-    HTTP_CLIENT.get_client().execute(request)?;
+    session_client
+        .read_marker(&room_id, &event_id, Some(&event_id))
+        .await?;
 
     Ok((room_id, event_id))
 }
diff --git a/fractal-matrix-api/src/meson.build b/fractal-matrix-api/src/meson.build
index 242a84e4..d81333c6 100644
--- a/fractal-matrix-api/src/meson.build
+++ b/fractal-matrix-api/src/meson.build
@@ -20,7 +20,6 @@ api_sources = files(
   'r0/profile/get_profile.rs',
   'r0/profile/set_avatar_url.rs',
   'r0/profile/set_display_name.rs',
-  'r0/read_marker/set_read_marker.rs',
   'r0/redact/redact_event.rs',
   'r0/search/user.rs',
   'r0/server/domain_info.rs',
@@ -38,7 +37,6 @@ api_sources = files(
   'r0/media.rs',
   'r0/message.rs',
   'r0/profile.rs',
-  'r0/read_marker.rs',
   'r0/redact.rs',
   'r0/search.rs',
   'r0/server.rs',
diff --git a/fractal-matrix-api/src/r0.rs b/fractal-matrix-api/src/r0.rs
index 944b24c5..0a366ca1 100644
--- a/fractal-matrix-api/src/r0.rs
+++ b/fractal-matrix-api/src/r0.rs
@@ -6,7 +6,6 @@ pub mod media;
 pub mod message;
 pub mod profile;
 pub mod pushrules;
-pub mod read_marker;
 pub mod redact;
 pub mod search;
 pub mod server;


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