func makeSchedule(s Schedule) (schedule.Schedule, error) { switch s.Type { case "simple": if s.Interval == "" { return nil, errors.New("missing `interval` in configuration of simple schedule") } d, err := time.ParseDuration(s.Interval) if err != nil { return nil, err } sch := schedule.NewSimpleSchedule(d) err = sch.Validate() if err != nil { return nil, err } return sch, nil case "windowed": if s.StartTimestamp == nil || s.StopTimestamp == nil || s.Interval == "" { errmsg := fmt.Sprintf("missing parameter/parameters in configuration of windowed schedule,"+ "start_timestamp: %s, stop_timestamp: %s, interval: %s", s.StartTimestamp, s.StopTimestamp, s.Interval) return nil, errors.New(errmsg) } d, err := time.ParseDuration(s.Interval) if err != nil { return nil, err } sch := schedule.NewWindowedSchedule( d, s.StartTimestamp, s.StopTimestamp, ) err = sch.Validate() if err != nil { return nil, err } return sch, nil case "cron": if s.Interval == "" { return nil, errors.New("missing `interval` in configuration of cron schedule") } sch := schedule.NewCronSchedule(s.Interval) err := sch.Validate() if err != nil { return nil, err } return sch, nil default: return nil, errors.New("unknown schedule type " + s.Type) } }
func makeSchedule(s request.Schedule) (cschedule.Schedule, error) { switch s.Type { case "simple": d, err := time.ParseDuration(s.Interval) if err != nil { return nil, err } sch := cschedule.NewSimpleSchedule(d) err = sch.Validate() if err != nil { return nil, err } return sch, nil case "windowed": d, err := time.ParseDuration(s.Interval) if err != nil { return nil, err } var start, stop *time.Time if s.StartTimestamp != nil { t := time.Unix(*s.StartTimestamp, 0) start = &t } if s.StopTimestamp != nil { t := time.Unix(*s.StopTimestamp, 0) stop = &t } sch := cschedule.NewWindowedSchedule( d, start, stop, ) err = sch.Validate() if err != nil { return nil, err } return sch, nil case "cron": if s.Interval == "" { return nil, errors.New("missing cron entry ") } sch := cschedule.NewCronSchedule(s.Interval) err := sch.Validate() if err != nil { return nil, err } return sch, nil default: return nil, errors.New("unknown schedule type " + s.Type) } }