use futures::stream::Stream;
use crate::{http, rest, Result};
pub type PaginatedRequestBuilder<'a> = http::PaginatedRequestBuilder<'a, rest::PresenceMessage>;
pub type PaginatedResult = http::PaginatedResult<rest::PresenceMessage>;
pub struct RequestBuilder<'a> {
inner: PaginatedRequestBuilder<'a>,
}
impl<'a> RequestBuilder<'a> {
pub fn new(inner: PaginatedRequestBuilder<'a>) -> Self {
Self { inner }
}
pub fn limit(mut self, limit: u32) -> Self {
self.inner = self.inner.limit(limit);
self
}
pub fn client_id(mut self, client_id: &str) -> Self {
self.inner = self.inner.params(&[("clientId", client_id.to_string())]);
self
}
pub fn connection_id(mut self, connection_id: &str) -> Self {
self.inner = self
.inner
.params(&[("connectionId", connection_id.to_string())]);
self
}
pub fn pages(self) -> impl Stream<Item = Result<PaginatedResult>> + 'a {
self.inner.pages()
}
pub async fn send(self) -> Result<PaginatedResult> {
self.inner.send().await
}
}