use polyoxide_core::{HttpClient, QueryBuilder, Request};
use crate::{
error::DataApiError,
types::{OtherSize, RevisionPayload},
};
#[derive(Clone)]
pub struct MiscApi {
pub(crate) http_client: HttpClient,
}
impl MiscApi {
pub fn other_size(
&self,
event_id: u64,
user_address: impl Into<String>,
) -> Request<Vec<OtherSize>, DataApiError> {
Request::new(self.http_client.clone(), "/other")
.query("id", event_id)
.query("user", user_address.into())
}
pub fn revisions(&self, question_id: impl Into<String>) -> ListRevisions {
ListRevisions {
request: Request::new(self.http_client.clone(), "/revisions")
.query("questionID", question_id.into()),
}
}
}
pub struct ListRevisions {
request: Request<Vec<RevisionPayload>, DataApiError>,
}
impl ListRevisions {
pub fn limit(mut self, limit: u32) -> Self {
self.request = self.request.query("limit", limit);
self
}
pub async fn send(self) -> Result<Vec<RevisionPayload>, DataApiError> {
self.request.send().await
}
}