|
|
|
@ -19,6 +19,7 @@ use ruma_client_api::{ |
|
|
|
UserInteractiveAuthenticationResponse, |
|
|
|
UserInteractiveAuthenticationResponse, |
|
|
|
}, |
|
|
|
}, |
|
|
|
alias::get_alias, |
|
|
|
alias::get_alias, |
|
|
|
|
|
|
|
directory::{self, get_public_rooms}, |
|
|
|
filter::{self, create_filter, get_filter}, |
|
|
|
filter::{self, create_filter, get_filter}, |
|
|
|
keys::get_keys, |
|
|
|
keys::get_keys, |
|
|
|
membership::{join_room_by_id, join_room_by_id_or_alias}, |
|
|
|
membership::{join_room_by_id, join_room_by_id_or_alias}, |
|
|
|
@ -387,6 +388,37 @@ fn join_room_by_id_or_alias_route( |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[get("/_matrix/client/r0/publicRooms", data = "<body>")] |
|
|
|
|
|
|
|
fn get_public_rooms_route( |
|
|
|
|
|
|
|
data: State<Data>, |
|
|
|
|
|
|
|
body: Ruma<get_public_rooms::Request>, |
|
|
|
|
|
|
|
) -> MatrixResult<get_public_rooms::Response> { |
|
|
|
|
|
|
|
let chunk = data |
|
|
|
|
|
|
|
.rooms_all() |
|
|
|
|
|
|
|
.into_iter() |
|
|
|
|
|
|
|
.map(|room_id| directory::PublicRoomsChunk { |
|
|
|
|
|
|
|
aliases: None, |
|
|
|
|
|
|
|
canonical_alias: None, |
|
|
|
|
|
|
|
name: None, |
|
|
|
|
|
|
|
num_joined_members: data.room_users(&room_id).into(), |
|
|
|
|
|
|
|
room_id, |
|
|
|
|
|
|
|
topic: None, |
|
|
|
|
|
|
|
world_readable: false, |
|
|
|
|
|
|
|
guest_can_join: true, |
|
|
|
|
|
|
|
avatar_url: None, |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.collect::<Vec<_>>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let total_room_count_estimate = (chunk.len() as u32).into(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MatrixResult(Ok(get_public_rooms::Response { |
|
|
|
|
|
|
|
chunk: chunk, |
|
|
|
|
|
|
|
prev_batch: None, |
|
|
|
|
|
|
|
next_batch: None, |
|
|
|
|
|
|
|
total_room_count_estimate: Some(total_room_count_estimate), |
|
|
|
|
|
|
|
})) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[put(
|
|
|
|
#[put(
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/send/<_event_type>/<_txn_id>", |
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/send/<_event_type>/<_txn_id>", |
|
|
|
data = "<body>" |
|
|
|
data = "<body>" |
|
|
|
@ -549,6 +581,7 @@ fn main() { |
|
|
|
get_alias_route, |
|
|
|
get_alias_route, |
|
|
|
join_room_by_id_route, |
|
|
|
join_room_by_id_route, |
|
|
|
join_room_by_id_or_alias_route, |
|
|
|
join_room_by_id_or_alias_route, |
|
|
|
|
|
|
|
get_public_rooms_route, |
|
|
|
create_message_event_route, |
|
|
|
create_message_event_route, |
|
|
|
create_state_event_for_key_route, |
|
|
|
create_state_event_for_key_route, |
|
|
|
create_state_event_for_empty_key_route, |
|
|
|
create_state_event_for_empty_key_route, |
|
|
|
|