File tree Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -282,15 +282,18 @@ func TestCreateNotificationPolicy_Validate(t *testing.T) {
282282 err = request .Validate ()
283283 assert .Nil (t , err )
284284
285- request .DelayAction = & DelayAction {DelayOption : NextSunday , UntilHour : - 3 }
285+ invalidHour , validHour := - 3 , 3
286+ invalidMinute , validMinute := 60 , 55
287+
288+ request .DelayAction = & DelayAction {DelayOption : NextSunday , UntilHour : & invalidHour }
286289 err = request .Validate ()
287290 assert .Equal (t , "delayAction's UntilHour or UntilMinute is not valid" , err .Error ())
288291
289- request .DelayAction = & DelayAction {DelayOption : NextSunday , UntilHour : 5 , UntilMinute : 60 }
292+ request .DelayAction = & DelayAction {DelayOption : NextSunday , UntilHour : & validHour , UntilMinute : & invalidMinute }
290293 err = request .Validate ()
291294 assert .Equal (t , "delayAction's UntilHour or UntilMinute is not valid" , err .Error ())
292295
293- request .DelayAction = & DelayAction {DelayOption : NextSunday , UntilHour : 5 , UntilMinute : 55 }
296+ request .DelayAction = & DelayAction {DelayOption : NextSunday , UntilHour : & validHour , UntilMinute : & validMinute }
294297 err = request .Validate ()
295298 assert .Nil (t , err )
296299
Original file line number Diff line number Diff line change @@ -547,8 +547,8 @@ type DeDuplicationAction struct {
547547
548548type DelayAction struct {
549549 DelayOption DelayType `json:"delayOption,omitempty"`
550- UntilMinute int `json:"untilMinute,omitempty"`
551- UntilHour int `json:"untilHour,omitempty"`
550+ UntilMinute * int `json:"untilMinute,omitempty"`
551+ UntilHour * int `json:"untilHour,omitempty"`
552552 Duration * Duration `json:"duration,omitempty"`
553553}
554554
@@ -667,12 +667,16 @@ func ValidateDelayAction(action DelayAction) error {
667667 return err
668668 }
669669 }
670- if action .DelayOption != ForDuration && ((action .UntilHour < 0 || action . UntilHour > 23 ) || (action .UntilMinute < 0 || action . UntilMinute > 59 )) {
670+ if action .DelayOption != ForDuration && (! validDuration (action .UntilHour , 23 ) || ! validDuration (action .UntilMinute , 59 )) {
671671 return errors .New ("delayAction's UntilHour or UntilMinute is not valid" )
672672 }
673673 return nil
674674}
675675
676+ func validDuration (value * int , max int ) bool {
677+ return value != nil && * value >= 0 && * value <= max
678+ }
679+
676680func ValidateResponders (responders * []alert.Responder ) error {
677681 for _ , responder := range * responders {
678682 if responder .Type != alert .UserResponder && responder .Type != alert .TeamResponder {
You can’t perform that action at this time.
0 commit comments