asana_cli/api/
workspaces.rs1use crate::api::api_get;
4use crate::{
5 api::{ApiClient, ApiError},
6 models::{Workspace, WorkspaceListParams},
7};
8use futures_util::{StreamExt, pin_mut};
9
10pub async fn list_workspaces(
15 client: &ApiClient,
16 params: WorkspaceListParams,
17) -> Result<Vec<Workspace>, ApiError> {
18 let stream = client.paginate_with_limit::<Workspace>("/workspaces", vec![], params.limit);
19 pin_mut!(stream);
20
21 let mut workspaces = Vec::new();
22 while let Some(page) = stream.next().await {
23 let mut page = page?;
24 workspaces.append(&mut page);
25 }
26
27 Ok(workspaces)
28}
29
30pub async fn get_workspace(client: &ApiClient, gid: &str) -> Result<Workspace, ApiError> {
35 api_get(client, &format!("/workspaces/{gid}")).await
36}