[fractal] Set read markers through matrix-sdk
- From: Alexandre Franke <afranke src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] Set read markers through matrix-sdk
- Date: Tue, 1 Dec 2020 20:21:59 +0000 (UTC)
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, ¶ms, &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]