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(&self, namespace: &str, name: &str) -> Result<Option<WorkflowSchedule>> {
19        self.store.get_schedule(namespace, name).await
20    }
21
22    pub async fn delete_schedule(&self, namespace: &str, name: &str) -> Result<bool> {
23        self.store.delete_schedule(namespace, name).await
24    }
25
26    pub async fn update_schedule(
27        &self,
28        namespace: &str,
29        name: &str,
30        patch: &SchedulePatch,
31    ) -> Result<Option<WorkflowSchedule>> {
32        self.store.update_schedule(namespace, name, patch).await
33    }
34
35    pub async fn set_schedule_paused(
36        &self,
37        namespace: &str,
38        name: &str,
39        paused: bool,
40    ) -> Result<Option<WorkflowSchedule>> {
41        self.store.set_schedule_paused(namespace, name, paused).await
42    }
43}