use std::sync::Arc;
use crate::{error::Result, model::*, transport::*};
pub struct CronResource {
pub(crate) t: Arc<Transport>,
}
impl CronResource {
pub async fn list(&self) -> Result<Vec<CronTask>> {
self.t.get_unwrap(&path_cron_tasks(), "tasks").await
}
pub async fn create(&self, req: CronCreateRequest) -> Result<CronTask> {
self.t.post(&path_cron_tasks(), &req).await
}
pub async fn get(&self, task_id: &str) -> Result<CronTask> {
self.t.get(&path_cron_task(task_id)).await
}
pub async fn update(&self, task_id: &str, req: CronUpdateRequest) -> Result<CronTask> {
self.t.put(&path_cron_task(task_id), &req).await
}
pub async fn pause(&self, task_id: &str) -> Result<CronTask> {
self.t.post(&path_cron_pause(task_id), &serde_json::Value::Object(Default::default())).await
}
pub async fn resume(&self, task_id: &str) -> Result<CronTask> {
self.t.post(&path_cron_resume(task_id), &serde_json::Value::Object(Default::default())).await
}
pub async fn delete(&self, task_id: &str) -> Result<()> {
self.t.delete(&path_cron_task(task_id)).await
}
}