client-api: Remove Option around RoomEventFilter

This commit is contained in:
Jonas Platte 2022-02-04 13:46:28 +01:00
parent 19fd35d066
commit 2de652049d
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
3 changed files with 19 additions and 36 deletions

View File

@ -39,9 +39,9 @@ ruma_api! {
#[serde(
with = "ruma_serde::json_string",
default,
skip_serializing_if = "Option::is_none"
skip_serializing_if = "RoomEventFilter::is_empty"
)]
pub filter: Option<RoomEventFilter<'a>>,
pub filter: RoomEventFilter<'a>,
}
#[derive(Default)]
@ -79,7 +79,7 @@ ruma_api! {
impl<'a> Request<'a> {
/// Creates a new `Request` with the given room id and event id.
pub fn new(room_id: &'a RoomId, event_id: &'a EventId) -> Self {
Self { room_id, event_id, limit: default_limit(), filter: None }
Self { room_id, event_id, limit: default_limit(), filter: RoomEventFilter::default() }
}
}

View File

@ -57,9 +57,9 @@ ruma_api! {
#[serde(
with = "ruma_serde::json_string",
default,
skip_serializing_if = "Option::is_none"
skip_serializing_if = "RoomEventFilter::is_empty"
)]
pub filter: Option<RoomEventFilter<'a>>,
pub filter: RoomEventFilter<'a>,
}
#[derive(Default)]
@ -88,7 +88,14 @@ impl<'a> Request<'a> {
///
/// All other parameters will be defaulted.
pub fn new(room_id: &'a RoomId, from: &'a str, dir: Direction) -> Self {
Self { room_id, from, to: None, dir, limit: default_limit(), filter: None }
Self {
room_id,
from,
to: None,
dir,
limit: default_limit(),
filter: RoomEventFilter::default(),
}
}
/// Creates a new `Request` with the given room ID and from token, and `dir` set to `Backward`.
@ -161,7 +168,7 @@ mod tests {
to: Some("token2"),
dir: Direction::Backward,
limit: uint!(0),
filter: Some(filter),
filter,
};
let request: http::Request<Vec<u8>> = req
@ -181,7 +188,7 @@ mod tests {
}
#[test]
fn serialize_none_room_event_filter() {
fn serialize_default_room_event_filter() {
let room_id = room_id!("!roomid:example.org");
let req = Request {
room_id,
@ -189,7 +196,7 @@ mod tests {
to: Some("token2"),
dir: Direction::Backward,
limit: uint!(0),
filter: None,
filter: RoomEventFilter::default(),
};
let request = req
@ -200,28 +207,4 @@ mod tests {
.unwrap();
assert_eq!("from=token&to=token2&dir=b&limit=0", request.uri().query().unwrap(),);
}
#[test]
fn serialize_default_room_event_filter() {
let room_id = room_id!("!roomid:example.org");
let req = Request {
room_id,
from: "token",
to: Some("token2"),
dir: Direction::Backward,
limit: uint!(0),
filter: Some(RoomEventFilter::default()),
};
let request: http::Request<Vec<u8>> = req
.try_into_http_request(
"https://homeserver.tld",
SendAccessToken::IfRequired("auth_tok"),
)
.unwrap();
assert_eq!(
"from=token&to=token2&dir=b&limit=0&filter=%7B%7D",
request.uri().query().unwrap(),
);
}
}

View File

@ -87,8 +87,8 @@ pub struct Criteria<'a> {
pub keys: Option<&'a [SearchKeys]>,
/// A `Filter` to apply to the search.
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<RoomEventFilter<'a>>,
#[serde(skip_serializing_if = "RoomEventFilter::is_empty")]
pub filter: RoomEventFilter<'a>,
/// The order in which to search for results.
#[serde(skip_serializing_if = "Option::is_none")]
@ -113,7 +113,7 @@ impl<'a> Criteria<'a> {
Self {
search_term,
keys: None,
filter: None,
filter: RoomEventFilter::default(),
order_by: None,
event_context: Default::default(),
include_state: None,