Skip to content
Snippets Groups Projects
Commit e5307d44 authored by 🥺's avatar 🥺 :transgender_flag: Committed by 🥺
Browse files

log error for /publicRooms requests, simplify it a bit

parent 9b5c8c12
No related branches found
No related tags found
No related merge requests found
......@@ -34,15 +34,7 @@
pub async fn get_public_rooms_filtered_route(
body: Ruma<get_public_rooms_filtered::v3::Request>,
) -> Result<get_public_rooms_filtered::v3::Response> {
if !services()
.globals
.config
.allow_public_room_directory_without_auth
{
let _sender_user = body.sender_user.as_ref().expect("user is authenticated");
}
get_public_rooms_filtered_helper(
let response = get_public_rooms_filtered_helper(
body.server.as_deref(),
body.limit,
body.since.as_deref(),
......@@ -50,6 +42,12 @@ pub async fn get_public_rooms_filtered_route(
&body.room_network,
)
.await
.map_err(|e| {
warn!("Failed to return our /publicRooms: {e}");
Error::BadRequest(ErrorKind::Unknown, "Failed to return this server's public room list.")
})?;
Ok(response)
}
/// # `GET /_matrix/client/v3/publicRooms`
......@@ -60,14 +58,6 @@ pub async fn get_public_rooms_filtered_route(
pub async fn get_public_rooms_route(
body: Ruma<get_public_rooms::v3::Request>,
) -> Result<get_public_rooms::v3::Response> {
if !services()
.globals
.config
.allow_public_room_directory_without_auth
{
let _sender_user = body.sender_user.as_ref().expect("user is authenticated");
}
let response = get_public_rooms_filtered_helper(
body.server.as_deref(),
body.limit,
......@@ -75,7 +65,11 @@ pub async fn get_public_rooms_route(
&Filter::default(),
&RoomNetwork::Matrix,
)
.await?;
.await
.map_err(|e| {
warn!("Failed to return our /publicRooms: {e}");
Error::BadRequest(ErrorKind::Unknown, "Failed to return this server's public room list.")
})?;
Ok(get_public_rooms::v3::Response {
chunk: response.chunk,
......
......@@ -265,6 +265,7 @@ async fn from_request(req: Request<B>, _state: &S) -> Result<Self, Self::Rejecti
}
},
AuthScheme::None => match parts.uri.path() {
// TOOD: can we do a better check here?
// allow_public_room_directory_without_auth
"/_matrix/client/v3/publicRooms" | "/_matrix/client/r0/publicRooms" => {
if !services()
......
......@@ -33,7 +33,7 @@
},
OutgoingResponse,
},
directory::{Filter, RoomNetwork},
directory::Filter,
events::{
receipt::{ReceiptEvent, ReceiptEventContent, ReceiptType},
room::{
......@@ -162,7 +162,11 @@ pub async fn get_public_rooms_filtered_route(
&body.filter,
&body.room_network,
)
.await?;
.await
.map_err(|e| {
warn!("Failed to return our /publicRooms: {e}");
Error::BadRequest(ErrorKind::Unknown, "Failed to return this server's public room list.")
})?;
Ok(get_public_rooms_filtered::v1::Response {
chunk: response.chunk,
......@@ -190,9 +194,13 @@ pub async fn get_public_rooms_route(
body.limit,
body.since.as_deref(),
&Filter::default(),
&RoomNetwork::Matrix,
&body.room_network,
)
.await?;
.await
.map_err(|e| {
warn!("Failed to return our /publicRooms: {e}");
Error::BadRequest(ErrorKind::Unknown, "Failed to return this server's public room list.")
})?;
Ok(get_public_rooms::v1::Response {
chunk: response.chunk,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment