apify_client/clients/
build_collection.rs1use crate::clients::base::{list_resource, ResourceContext};
4use crate::clients::pagination::{list_iterator, ListIterator};
5use crate::common::{ListOptions, PaginationList, QueryParams};
6use crate::error::ApifyClientResult;
7use crate::http_client::HttpClient;
8use crate::models::Build;
9
10#[derive(Debug, Clone)]
12pub struct BuildCollectionClient {
13 ctx: ResourceContext,
14}
15
16impl BuildCollectionClient {
17 pub(crate) fn new(http: HttpClient, base_url: &str) -> Self {
18 Self {
19 ctx: ResourceContext::collection(http, base_url, "actor-builds"),
20 }
21 }
22
23 pub(crate) fn with_base(http: HttpClient, base_url: &str, resource_path: &str) -> Self {
25 Self {
26 ctx: ResourceContext::collection(http, base_url, resource_path),
27 }
28 }
29
30 pub async fn list(&self, options: ListOptions) -> ApifyClientResult<PaginationList<Build>> {
32 let mut params = QueryParams::new();
33 params
34 .add_int("offset", options.offset)
35 .add_int("limit", options.limit)
36 .add_bool("desc", options.desc);
37 list_resource(&self.ctx, None, ¶ms).await
38 }
39
40 pub fn iterate(&self, options: ListOptions) -> ListIterator<Build> {
47 list_iterator!(self, options, list)
48 }
49}