Skip to content

Commit 3754bd0

Browse files
committed
refactor(ffi): Call methods on Room instead of redoing the same work.
This patch updates `Room::report_content` and `Room::report_room` to call the same methods on `matrix_sdk` instead of re-implementing them.
1 parent b4a8089 commit 3754bd0

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

bindings/matrix-sdk-ffi/src/room.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ use matrix_sdk::{
77
crypto::LocalTrust,
88
room::{
99
edit::EditedContent, power_levels::RoomPowerLevelChanges, Room as SdkRoom, RoomMemberRole,
10+
TryFromReportedContentScoreError,
1011
},
1112
ComposerDraft as SdkComposerDraft, ComposerDraftType as SdkComposerDraftType, EncryptionState,
1213
RoomHero as SdkRoomHero, RoomMemberships, RoomState,
1314
};
1415
use matrix_sdk_ui::timeline::{default_event_filter, RoomExt};
1516
use mime::Mime;
1617
use ruma::{
17-
api::client::room::{report_content, report_room},
1818
assign,
1919
events::{
2020
call::notify,
@@ -384,17 +384,18 @@ impl Room {
384384
score: Option<i32>,
385385
reason: Option<String>,
386386
) -> Result<(), ClientError> {
387-
let event_id = EventId::parse(event_id)?;
388-
let int_score = score.map(|value| value.into());
389387
self.inner
390-
.client()
391-
.send(report_content::v3::Request::new(
392-
self.inner.room_id().into(),
393-
event_id,
394-
int_score,
388+
.report_content(
389+
EventId::parse(event_id)?,
390+
score.map(TryFrom::try_from).transpose().map_err(
391+
|error: TryFromReportedContentScoreError| ClientError::Generic {
392+
msg: error.to_string(),
393+
},
394+
)?,
395395
reason,
396-
))
396+
)
397397
.await?;
398+
398399
Ok(())
399400
}
400401

@@ -409,10 +410,8 @@ impl Room {
409410
///
410411
/// Returns an error if the room is not found or on rate limit
411412
pub async fn report_room(&self, reason: Option<String>) -> Result<(), ClientError> {
412-
let mut request = report_room::v3::Request::new(self.inner.room_id().into());
413-
request.reason = reason;
413+
self.inner.report_room(reason).await?;
414414

415-
self.inner.client().send(request).await?;
416415
Ok(())
417416
}
418417

0 commit comments

Comments
 (0)