fix: snapshot existing config before update; rollback returns 200
This commit is contained in:
@@ -130,5 +130,5 @@ pub(super) async fn rollback_schedule(
|
||||
let detail = format!("rollback to gen {}; {} slots", target.generation, schedule.slots.len());
|
||||
let _ = state.activity_log_repo.log("schedule_rollback", &detail, Some(channel_id)).await;
|
||||
|
||||
Ok((StatusCode::CREATED, Json(ScheduleResponse::from(schedule))))
|
||||
Ok(Json(ScheduleResponse::from(schedule)))
|
||||
}
|
||||
|
||||
@@ -44,10 +44,12 @@ impl ChannelService {
|
||||
}
|
||||
|
||||
pub async fn update(&self, channel: Channel) -> DomainResult<Channel> {
|
||||
// Auto-snapshot the config being replaced
|
||||
self.channel_repo
|
||||
.save_config_snapshot(channel.id, &channel.schedule_config, None)
|
||||
.await?;
|
||||
// Auto-snapshot the existing config before overwriting
|
||||
if let Some(existing) = self.channel_repo.find_by_id(channel.id).await? {
|
||||
self.channel_repo
|
||||
.save_config_snapshot(channel.id, &existing.schedule_config, None)
|
||||
.await?;
|
||||
}
|
||||
self.channel_repo.save(&channel).await?;
|
||||
Ok(channel)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user