Merge pull request #1560 from zhulongcheng/before-validation

fix(http/task): add validation for beforeTime/afterTime params
pull/10616/head
Mark Rushakoff 2018-11-29 06:35:03 -08:00 committed by GitHub
commit 0a96f67cf5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 6 deletions

View File

@ -560,14 +560,26 @@ func decodeGetRunsRequest(ctx context.Context, r *http.Request, orgs platform.Or
req.filter.Limit = i
}
if time := qp.Get("afterTime"); time != "" {
// TODO (jm): verify valid RFC3339
req.filter.AfterTime = time
var at, bt string
var afterTime, beforeTime time.Time
if at = qp.Get("afterTime"); at != "" {
afterTime, err = time.Parse(time.RFC3339, at)
if err != nil {
return nil, err
}
req.filter.AfterTime = at
}
if time := qp.Get("beforeTime"); time != "" {
// TODO (jm): verify valid RFC3339
req.filter.BeforeTime = time
if bt = qp.Get("beforeTime"); bt != "" {
beforeTime, err = time.Parse(time.RFC3339, bt)
if err != nil {
return nil, err
}
req.filter.BeforeTime = bt
}
if at != "" && bt != "" && !beforeTime.After(afterTime) {
return nil, kerrors.InvalidDataf("beforeTime must be later than afterTime")
}
return req, nil