Skip to main content

assay_workflow/
schedules.rs

1//! Schedule CRUD methods.
2
3use anyhow::Result;
4
5use crate::ctx::WorkflowCtx;
6use crate::store::WorkflowStore;
7use crate::types::*;
8
9impl<S: WorkflowStore> WorkflowCtx<S> {
10    pub async fn create_schedule(&self, schedule: &WorkflowSchedule) -> Result<()> {
11        self.store.create_schedule(schedule).await
12    }
13
14    pub async fn list_schedules(&self, namespace: &str) -> Result<Vec<WorkflowSchedule>> {
15        self.store.list_schedules(namespace).await
16    }
17
18    pub async fn get_schedule(
19        &self,
20        namespace: &str,
21        name: &str,
22    ) -> Result<Option<WorkflowSchedule>> {
23        self.store.get_schedule(namespace, name).await
24    }
25
26    pub async fn delete_schedule(&self, namespace: &str, name: &str) -> Result<bool> {
27        self.store.delete_schedule(namespace, name).await
28    }
29
30    pub async fn update_schedule(
31        &self,
32        namespace: &str,
33        name: &str,
34        patch: &SchedulePatch,
35    ) -> Result<Option<WorkflowSchedule>> {
36        self.store.update_schedule(namespace, name, patch).await
37    }
38
39    pub async fn set_schedule_paused(
40        &self,
41        namespace: &str,
42        name: &str,
43        paused: bool,
44    ) -> Result<Option<WorkflowSchedule>> {
45        self.store
46            .set_schedule_paused(namespace, name, paused)
47            .await
48    }
49}