1// Copyright 2017 The Gitea Authors. All rights reserved.
2// SPDX-License-Identifier: MIT
3
4package context
5
6import (
7 "strings"
8 "time"
9)
10
11// GetQueryBeforeSince return parsed time (unix format) from URL query's before and since
12func GetQueryBeforeSince(ctx *Base) (before, since int64, err error) {
13 before, err = parseFormTime(ctx, "before")
14 if err != nil {
15 return 0, 0, err
16 }
17
18 since, err = parseFormTime(ctx, "since")
19 if err != nil {
20 return 0, 0, err
21 }
22 return before, since, nil
23}
24
25// parseTime parse time and return unix timestamp
26func parseFormTime(ctx *Base, name string) (int64, error) {
27 value := strings.TrimSpace(ctx.FormString(name))
28 if len(value) != 0 {
29 t, err := time.Parse(time.RFC3339, value)
30 if err != nil {
31 return 0, err
32 }
33 if !t.IsZero() {
34 return t.Unix(), nil
35 }
36 }
37 return 0, nil
38}