@@ -40,10 +40,15 @@ func executionFilterFromRequest(r *http.Request) (model.CheckExecutionFilter, er
4040 if err != nil {
4141 return filter , err
4242 }
43+
44+ if limit < 0 {
45+ return filter , fmt .Errorf ("limit must be greater than or equal to zero" )
46+ }
47+
4348 filter .Limit = limit
4449 }
4550
46- return filter , nil
51+ return filter , validateExecutionFilter ( filter )
4752}
4853
4954func (h * Handler ) timelineFilterFromRequest (
@@ -180,6 +185,18 @@ func validateBucketFilter(filter model.CheckExecutionAggregateFilter) error {
180185 return fmt .Errorf ("check_id is required" )
181186 }
182187
188+ if filter .From == nil {
189+ return fmt .Errorf ("from is required" )
190+ }
191+
192+ if filter .To == nil {
193+ return fmt .Errorf ("to is required" )
194+ }
195+
196+ if ! filter .To .After (* filter .From ) {
197+ return fmt .Errorf ("to must be after from" )
198+ }
199+
183200 switch filter .Bucket {
184201 case "" , model .CheckExecutionBucketSecond , model .CheckExecutionBucketMinute ,
185202 model .CheckExecutionBucketHour , model .CheckExecutionBucketDay :
@@ -189,3 +206,19 @@ func validateBucketFilter(filter model.CheckExecutionAggregateFilter) error {
189206
190207 return nil
191208}
209+
210+ func validateExecutionFilter (filter model.CheckExecutionFilter ) error {
211+ if filter .ServiceID == "" {
212+ return fmt .Errorf ("service_id is required" )
213+ }
214+
215+ if filter .CheckID == "" {
216+ return fmt .Errorf ("check_id is required" )
217+ }
218+
219+ if filter .From != nil && filter .To != nil && ! filter .To .After (* filter .From ) {
220+ return fmt .Errorf ("to must be after from" )
221+ }
222+
223+ return nil
224+ }
0 commit comments