use crate::clients::base::{get_or_create_named, list_resource, ResourceContext};
use crate::common::{PaginationList, QueryParams, StorageListOptions};
use crate::error::ApifyClientResult;
use crate::http_client::HttpClient;
use crate::models::KeyValueStore;
#[derive(Debug, Clone)]
pub struct KeyValueStoreCollectionClient {
ctx: ResourceContext,
}
impl KeyValueStoreCollectionClient {
pub(crate) fn new(http: HttpClient, base_url: &str) -> Self {
Self {
ctx: ResourceContext::collection(http, base_url, "key-value-stores"),
}
}
pub async fn list(
&self,
options: StorageListOptions,
) -> ApifyClientResult<PaginationList<KeyValueStore>> {
let mut params = QueryParams::new();
options.apply(&mut params);
list_resource(&self.ctx, None, ¶ms).await
}
pub async fn get_or_create(&self, name: Option<&str>) -> ApifyClientResult<KeyValueStore> {
get_or_create_named(&self.ctx, name).await
}
}