forked from forgejo/forgejo
times Add filters (#9373)
(extend #9200) * add query param for GET functions (created Bevore & after) * add test * generalize func GetQueryBeforeSince Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
f8dcc5f9f8
commit
14a9687444
6 changed files with 234 additions and 32 deletions
|
@ -4,7 +4,12 @@
|
|||
|
||||
package utils
|
||||
|
||||
import "code.gitea.io/gitea/modules/context"
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
)
|
||||
|
||||
// UserID user ID of authenticated user, or 0 if not authenticated
|
||||
func UserID(ctx *context.APIContext) int64 {
|
||||
|
@ -13,3 +18,29 @@ func UserID(ctx *context.APIContext) int64 {
|
|||
}
|
||||
return ctx.User.ID
|
||||
}
|
||||
|
||||
// GetQueryBeforeSince return parsed time (unix format) from URL query's before and since
|
||||
func GetQueryBeforeSince(ctx *context.APIContext) (before, since int64, err error) {
|
||||
qCreatedBefore := strings.Trim(ctx.Query("before"), " ")
|
||||
if qCreatedBefore != "" {
|
||||
createdBefore, err := time.Parse(time.RFC3339, qCreatedBefore)
|
||||
if err != nil {
|
||||
return 0, 0, err
|
||||
}
|
||||
if !createdBefore.IsZero() {
|
||||
before = createdBefore.Unix()
|
||||
}
|
||||
}
|
||||
|
||||
qCreatedAfter := strings.Trim(ctx.Query("since"), " ")
|
||||
if qCreatedAfter != "" {
|
||||
createdAfter, err := time.Parse(time.RFC3339, qCreatedAfter)
|
||||
if err != nil {
|
||||
return 0, 0, err
|
||||
}
|
||||
if !createdAfter.IsZero() {
|
||||
since = createdAfter.Unix()
|
||||
}
|
||||
}
|
||||
return before, since, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue