| 24 | var _ agpl.UserQuietHoursScheduleStore = &enterpriseUserQuietHoursScheduleStore{} |
| 25 | |
| 26 | func NewEnterpriseUserQuietHoursScheduleStore(defaultSchedule string, userCanSet bool) (agpl.UserQuietHoursScheduleStore, error) { |
| 27 | if defaultSchedule == "" { |
| 28 | return nil, xerrors.Errorf("default schedule must be set") |
| 29 | } |
| 30 | |
| 31 | s := &enterpriseUserQuietHoursScheduleStore{ |
| 32 | defaultSchedule: defaultSchedule, |
| 33 | userCanSet: userCanSet, |
| 34 | } |
| 35 | |
| 36 | // The context is only used for tracing so using a background ctx is fine. |
| 37 | _, err := s.parseSchedule(context.Background(), defaultSchedule) |
| 38 | if err != nil { |
| 39 | return nil, xerrors.Errorf("parse default schedule: %w", err) |
| 40 | } |
| 41 | |
| 42 | return s, nil |
| 43 | } |
| 44 | |
| 45 | func (s *enterpriseUserQuietHoursScheduleStore) parseSchedule(ctx context.Context, rawSchedule string) (agpl.UserQuietHoursScheduleOptions, error) { |
| 46 | _, span := tracing.StartSpan(ctx) |