feat(push): validate push channels presence before enabling push event

- Reject toggling an event to enabled in ToggleEvent handler if channels list is empty.
- Add model-level validation in PushEvent.Validate() to prevent enabling events without channels during creation/updates.
- Update TestPushRouters/toggle_event_status unit test to cover this verification.
This commit is contained in:
ryan
2026-06-16 08:59:03 +08:00
parent 6a913701b9
commit bfa00ae6ac
3 changed files with 17 additions and 1 deletions
+4
View File
@@ -351,6 +351,10 @@ func ToggleEvent(c *gin.Context) {
}
event.Enabled = !event.Enabled
if event.Enabled && len(event.Channels) == 0 {
c.JSON(http.StatusBadRequest, response.Err("cannot enable event without any push channels configured"))
return
}
if err := db.DB(c.Request.Context()).Model(&event).Update("enabled", event.Enabled).Error; err != nil {
c.JSON(http.StatusInternalServerError, response.Err(err.Error()))
return