use crate::api::api_get;
use crate::{
api::{ApiClient, ApiError},
models::{Workspace, WorkspaceListParams},
};
use futures_util::{StreamExt, pin_mut};
pub async fn list_workspaces(
client: &ApiClient,
params: WorkspaceListParams,
) -> Result<Vec<Workspace>, ApiError> {
let stream = client.paginate_with_limit::<Workspace>("/workspaces", vec![], params.limit);
pin_mut!(stream);
let mut workspaces = Vec::new();
while let Some(page) = stream.next().await {
let mut page = page?;
workspaces.append(&mut page);
}
Ok(workspaces)
}
pub async fn get_workspace(client: &ApiClient, gid: &str) -> Result<Workspace, ApiError> {
api_get(client, &format!("/workspaces/{gid}")).await
}