[fractal] api: Fix publicRooms request
- From: Alexandre Franke <afranke src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] api: Fix publicRooms request
- Date: Wed, 1 May 2019 18:21:12 +0000 (UTC)
commit 17aca318445a201c547d86d09919d26b6379ecae
Author: Christopher Davis <brainblasted disroot org>
Date: Mon Apr 29 15:00:55 2019 -0400
api: Fix publicRooms request
Previously we passed a String as "filter" in our
PublicRoomsRequest, but we needed to be passing
a Filter object. Somewhere along the way the String
stopped being accepted, breaking search.
Fixes https://gitlab.gnome.org/GNOME/fractal/issues/451
fractal-matrix-api/src/backend/directory.rs | 7 +++++--
fractal-matrix-api/src/model/room.rs | 9 ++++++---
fractal-matrix-api/src/types.rs | 1 +
3 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/fractal-matrix-api/src/backend/directory.rs b/fractal-matrix-api/src/backend/directory.rs
index e6501c14..99ce826e 100644
--- a/fractal-matrix-api/src/backend/directory.rs
+++ b/fractal-matrix-api/src/backend/directory.rs
@@ -13,6 +13,7 @@ use crate::util::cache_path;
use crate::util::json_q;
use crate::util::media;
+use crate::types::PublicRoomsFilter;
use crate::types::PublicRoomsRequest;
use crate::types::PublicRoomsResponse;
use crate::types::Room;
@@ -53,7 +54,7 @@ pub fn protocols(bk: &Backend) {
pub fn room_search(
bk: &Backend,
homeserver: Option<String>,
- filter: Option<String>,
+ generic_search_term: Option<String>,
third_party: Option<String>,
more: bool,
) -> Result<(), Error> {
@@ -79,7 +80,9 @@ pub fn room_search(
let request = PublicRoomsRequest {
limit: Some(globals::ROOM_DIRECTORY_LIMIT),
- filter,
+ filter: Some(PublicRoomsFilter {
+ generic_search_term,
+ }),
since,
third_party_networks: third_party
.map(|tp| ThirdPartyNetworks::Only(tp))
diff --git a/fractal-matrix-api/src/model/room.rs b/fractal-matrix-api/src/model/room.rs
index 594368d7..9055be5a 100644
--- a/fractal-matrix-api/src/model/room.rs
+++ b/fractal-matrix-api/src/model/room.rs
@@ -270,14 +270,17 @@ pub struct PublicRoomsRequest {
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub since: Option<String>,
- // This field doesn't follow the spec but for some reason
- // it fails with matrix.org if it's not set this way
#[serde(skip_serializing_if = "Option::is_none")]
- pub filter: Option<String>,
+ pub filter: Option<PublicRoomsFilter>,
#[serde(flatten)]
pub third_party_networks: ThirdPartyNetworks,
}
+#[derive(Clone, Debug, Serialize)]
+pub struct PublicRoomsFilter {
+ pub generic_search_term: Option<String>,
+}
+
#[derive(Clone, Debug, Serialize)]
#[serde(tag = "include_all_networks", content = "third_party_instance_id")]
pub enum ThirdPartyNetworks {
diff --git a/fractal-matrix-api/src/types.rs b/fractal-matrix-api/src/types.rs
index 3742967d..482a7b9f 100644
--- a/fractal-matrix-api/src/types.rs
+++ b/fractal-matrix-api/src/types.rs
@@ -11,6 +11,7 @@ pub use crate::model::message::Message;
pub use crate::model::protocol::ProtocolInstance;
pub use crate::model::protocol::SupportedProtocols;
pub use crate::model::register::*;
+pub use crate::model::room::PublicRoomsFilter;
pub use crate::model::room::PublicRoomsRequest;
pub use crate::model::room::PublicRoomsResponse;
pub use crate::model::room::Room;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]