Send read reciept and typing indicator EDUs to appservices with receive_ephemeral
This commit is contained in:
parent
5b6ff3869c
commit
3675c941f8
8 changed files with 135 additions and 46 deletions
|
@ -2,9 +2,10 @@ mod data;
|
|||
|
||||
use std::{collections::BTreeMap, sync::Arc};
|
||||
|
||||
use conduwuit::{debug, err, warn, PduCount, PduId, RawPduId, Result};
|
||||
use conduwuit::{debug, err, result::LogErr, warn, PduCount, PduId, RawPduId, Result};
|
||||
use futures::{try_join, Stream, TryFutureExt};
|
||||
use ruma::{
|
||||
api::appservice::event::push_events::v1::EphemeralData,
|
||||
events::{
|
||||
receipt::{ReceiptEvent, ReceiptEventContent, Receipts},
|
||||
AnySyncEphemeralRoomEvent, SyncEphemeralRoomEvent,
|
||||
|
@ -48,14 +49,25 @@ impl Service {
|
|||
&self,
|
||||
user_id: &UserId,
|
||||
room_id: &RoomId,
|
||||
event: &ReceiptEvent,
|
||||
event: ReceiptEvent,
|
||||
) {
|
||||
self.db.readreceipt_update(user_id, room_id, event).await;
|
||||
self.db.readreceipt_update(user_id, room_id, &event).await;
|
||||
self.services
|
||||
.sending
|
||||
.flush_room(room_id)
|
||||
.await
|
||||
.expect("room flush failed");
|
||||
// update appservices
|
||||
let edu = EphemeralData::Receipt(event);
|
||||
let _ = self
|
||||
.services
|
||||
.sending
|
||||
.send_edu_appservice_room(
|
||||
room_id,
|
||||
serde_json::to_vec(&edu).expect("Serialized EphemeralData::Receipt"),
|
||||
)
|
||||
.await
|
||||
.log_err();
|
||||
}
|
||||
|
||||
/// Gets the latest private read receipt from the user in the room
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue