scheduled prompts: add/remove targets on edit (#474 fast-follow)
This commit is contained in:
parent
376b37fed7
commit
99bf4d635d
6 changed files with 216 additions and 3 deletions
|
|
@ -1509,6 +1509,17 @@ struct EditScheduleForm {
|
|||
interval_seconds: Option<Option<u64>>,
|
||||
#[serde(default)]
|
||||
next_fire_at_unix: Option<i64>,
|
||||
/// New targets to add. Replace-on-conflict: re-adding a
|
||||
/// previously-cancelled target drops the tombstone and the
|
||||
/// target starts fresh (operator intent on re-add = "this
|
||||
/// target is active again, fresh start").
|
||||
#[serde(default)]
|
||||
targets_add: Option<Vec<String>>,
|
||||
/// Targets to cancel. Same path as `cancel_targets`:
|
||||
/// tombstones preserve audit and the parent schedule
|
||||
/// auto-cancels when no active targets remain.
|
||||
#[serde(default)]
|
||||
targets_remove: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
/// serde adaptor: turns missing-key into `None`, explicit-null
|
||||
|
|
@ -1543,6 +1554,8 @@ async fn patch_schedule(
|
|||
description: form.description,
|
||||
interval_seconds: form.interval_seconds,
|
||||
next_fire_at_unix: form.next_fire_at_unix,
|
||||
targets_add: form.targets_add,
|
||||
targets_remove: form.targets_remove,
|
||||
};
|
||||
if let Err(e) = state.coord.scheduled_prompts.update(id, patch) {
|
||||
return error_response(&format!("edit schedule {id}: {e:#}"));
|
||||
|
|
|
|||
Loading…
Reference in a new issue