Skip to content

Commit 64c7ed1

Browse files
author
Rens van Leeuwen
committed
Serialize value 0 for int
1 parent d0ddd91 commit 64c7ed1

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

policy/policy_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff 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

policy/request.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -547,8 +547,8 @@ type DeDuplicationAction struct {
547547

548548
type 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+
676680
func ValidateResponders(responders *[]alert.Responder) error {
677681
for _, responder := range *responders {
678682
if responder.Type != alert.UserResponder && responder.Type != alert.TeamResponder {

0 commit comments

Comments
 (0)