apify_client/clients/
schedule_collection.rs1use serde::Serialize;
4
5use crate::clients::base::{create_resource, list_resource, ResourceContext};
6use crate::common::{ListOptions, PaginationList, QueryParams};
7use crate::error::ApifyClientResult;
8use crate::http_client::HttpClient;
9use crate::models::Schedule;
10
11#[derive(Debug, Clone)]
13pub struct ScheduleCollectionClient {
14 ctx: ResourceContext,
15}
16
17impl ScheduleCollectionClient {
18 pub(crate) fn new(http: HttpClient, base_url: &str) -> Self {
19 Self {
20 ctx: ResourceContext::collection(http, base_url, "schedules"),
21 }
22 }
23
24 pub async fn list(&self, options: ListOptions) -> ApifyClientResult<PaginationList<Schedule>> {
26 let mut params = QueryParams::new();
27 params
28 .add_int("offset", options.offset)
29 .add_int("limit", options.limit)
30 .add_bool("desc", options.desc);
31 list_resource(&self.ctx, None, ¶ms).await
32 }
33
34 pub async fn create<T: Serialize>(&self, schedule: &T) -> ApifyClientResult<Schedule> {
36 create_resource(&self.ctx, &QueryParams::new(), schedule).await
37 }
38}