diff --git a/src/api/client/relations.rs b/src/api/client/relations.rs index 8b666a94..dc851b15 100644 --- a/src/api/client/relations.rs +++ b/src/api/client/relations.rs @@ -154,13 +154,11 @@ async fn paginate_relations_with_filter( .collect() .await; - let next_batch = match dir { - | Direction::Forward => events.last(), - | Direction::Backward => events.first(), - } - .map(at!(0)) - .as_ref() - .map(ToString::to_string); + let next_batch = events + .last() + .map(at!(0)) + .as_ref() + .map(ToString::to_string); Ok(get_relating_events::v1::Response { next_batch, diff --git a/src/service/rooms/pdu_metadata/mod.rs b/src/service/rooms/pdu_metadata/mod.rs index 45169a98..6e408ec4 100644 --- a/src/service/rooms/pdu_metadata/mod.rs +++ b/src/service/rooms/pdu_metadata/mod.rs @@ -92,8 +92,9 @@ impl Service { stack.push((relation.clone(), stack_pdu.1.saturating_add(1))); } - pdus.push(relation); - if pdus.len() >= limit { + if pdus.len() < limit { + pdus.push(relation); + } else { break 'limit; } }