Skip to content

Commit 31dd031

Browse files
committed
matrix-sdk: Move room specific methods to room structs
1 parent 450036c commit 31dd031

File tree

9 files changed

+940
-710
lines changed

9 files changed

+940
-710
lines changed

matrix_sdk/examples/autojoin.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use tokio::time::{sleep, Duration};
44
use matrix_sdk::{
55
self, async_trait,
66
events::{room::member::MemberEventContent, StrippedStateEvent},
7-
Client, ClientConfig, EventHandler, Room, RoomType, SyncSettings,
7+
room, Client, ClientConfig, EventHandler, Room, SyncSettings,
88
};
99
use url::Url;
1010

@@ -30,11 +30,11 @@ impl EventHandler for AutoJoinBot {
3030
return;
3131
}
3232

33-
if room.room_type() == RoomType::Invited {
33+
if let Some(room) = room::Invited::new(self.client.clone(), room) {
3434
println!("Autojoining room {}", room.room_id());
3535
let mut delay = 2;
3636

37-
while let Err(err) = self.client.join_room_by_id(room.room_id()).await {
37+
while let Err(err) = room.accept_invitation().await {
3838
// retry autojoin due to synapse sending invites, before the
3939
// invited user can join for more information see
4040
// https://github.com/matrix-org/synapse/issues/4345

matrix_sdk/examples/command_bot.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use matrix_sdk::{
66
room::message::{MessageEventContent, MessageType, TextMessageEventContent},
77
AnyMessageEventContent, SyncMessageEvent,
88
},
9-
Client, ClientConfig, EventHandler, Room, RoomType, SyncSettings,
9+
room::Joined,
10+
Client, ClientConfig, EventHandler, Room, SyncSettings,
1011
};
1112
use url::Url;
1213

@@ -25,7 +26,7 @@ impl CommandBot {
2526
#[async_trait]
2627
impl EventHandler for CommandBot {
2728
async fn on_room_message(&self, room: Room, event: &SyncMessageEvent<MessageEventContent>) {
28-
if room.room_type() == RoomType::Joined {
29+
if let Some(room) = Joined::new(self.client.clone(), room) {
2930
let msg_body = if let SyncMessageEvent {
3031
content:
3132
MessageEventContent {
@@ -47,12 +48,9 @@ impl EventHandler for CommandBot {
4748

4849
println!("sending");
4950

50-
self.client
51-
// send our message to the room we found the "!party" command in
52-
// the last parameter is an optional Uuid which we don't care about.
53-
.room_send(room.room_id(), content, None)
54-
.await
55-
.unwrap();
51+
// send our message to the room we found the "!party" command in
52+
// the last parameter is an optional Uuid which we don't care about.
53+
room.send(content, None).await.unwrap();
5654

5755
println!("message sent");
5856
}

matrix_sdk/examples/image_bot.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ use matrix_sdk::{
1414
room::message::{MessageEventContent, MessageType, TextMessageEventContent},
1515
SyncMessageEvent,
1616
},
17-
Client, EventHandler, Room, RoomType, SyncSettings,
17+
room::Joined,
18+
Client, EventHandler, Room, SyncSettings,
1819
};
1920
use url::Url;
2021

@@ -33,7 +34,7 @@ impl ImageBot {
3334
#[async_trait]
3435
impl EventHandler for ImageBot {
3536
async fn on_room_message(&self, room: Room, event: &SyncMessageEvent<MessageEventContent>) {
36-
if room.room_type() == RoomType::Joined {
37+
if let Some(room) = Joined::new(self.client.clone(), room) {
3738
let msg_body = if let SyncMessageEvent {
3839
content:
3940
MessageEventContent {
@@ -52,14 +53,7 @@ impl EventHandler for ImageBot {
5253
println!("sending image");
5354
let mut image = self.image.lock().await;
5455

55-
self.client
56-
.room_send_attachment(
57-
room.room_id(),
58-
"cat",
59-
&mime::IMAGE_JPEG,
60-
&mut *image,
61-
None,
62-
)
56+
room.send_attachment("cat", &mime::IMAGE_JPEG, &mut *image, None)
6357
.await
6458
.unwrap();
6559

0 commit comments

Comments
 (0)