1use futures::stream::Stream;
2
3use crate::{http, rest, Result};
4
5pub type PaginatedRequestBuilder<'a> = http::PaginatedRequestBuilder<'a, rest::PresenceMessage>;
8
9pub type PaginatedResult = http::PaginatedResult<rest::PresenceMessage>;
12
13pub struct RequestBuilder<'a> {
15 inner: PaginatedRequestBuilder<'a>,
16}
17
18impl<'a> RequestBuilder<'a> {
19 pub fn new(inner: PaginatedRequestBuilder<'a>) -> Self {
20 Self { inner }
21 }
22
23 pub fn limit(mut self, limit: u32) -> Self {
25 self.inner = self.inner.limit(limit);
26 self
27 }
28
29 pub fn client_id(mut self, client_id: &str) -> Self {
31 self.inner = self.inner.params(&[("clientId", client_id.to_string())]);
32 self
33 }
34
35 pub fn connection_id(mut self, connection_id: &str) -> Self {
37 self.inner = self
38 .inner
39 .params(&[("connectionId", connection_id.to_string())]);
40 self
41 }
42
43 pub fn pages(self) -> impl Stream<Item = Result<PaginatedResult>> + 'a {
45 self.inner.pages()
46 }
47
48 pub async fn send(self) -> Result<PaginatedResult> {
50 self.inner.send().await
51 }
52}