aboutsummaryrefslogtreecommitdiffstats
path: root/modules/context
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-06-17 10:58:10 +0200
committerGitHub <noreply@github.com>2021-06-17 10:58:10 +0200
commit6ad5d0a3062966515730aa1f8d62db5d2a7704ee (patch)
tree711b5814e4eb096e88b6f2ccbe597b0b00029275 /modules/context
parentc9d053f0caa14e6fec4d04c009c79c9a0940c450 (diff)
downloadgitea-6ad5d0a3062966515730aa1f8d62db5d2a7704ee.tar.gz
gitea-6ad5d0a3062966515730aa1f8d62db5d2a7704ee.zip
[API] ListReleases add filter for draft and pre-releases (#16175)
* invent ctx.QueryOptionalBool * [API] ListReleases add draft and pre-release filter * Add X-Total-Count header * Add a release to fixtures * Add TEST for API ListReleases
Diffstat (limited to 'modules/context')
-rw-r--r--modules/context/context.go6
-rw-r--r--modules/context/form.go14
2 files changed, 20 insertions, 0 deletions
diff --git a/modules/context/context.go b/modules/context/context.go
index 492b3f80de..7b3fd2899a 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -27,6 +27,7 @@ import (
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/templates"
"code.gitea.io/gitea/modules/translation"
+ "code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/web/middleware"
"code.gitea.io/gitea/services/auth"
@@ -319,6 +320,11 @@ func (ctx *Context) QueryBool(key string, defaults ...bool) bool {
return (*Forms)(ctx.Req).MustBool(key, defaults...)
}
+// QueryOptionalBool returns request form as OptionalBool with default
+func (ctx *Context) QueryOptionalBool(key string, defaults ...util.OptionalBool) util.OptionalBool {
+ return (*Forms)(ctx.Req).MustOptionalBool(key, defaults...)
+}
+
// HandleText handles HTTP status code
func (ctx *Context) HandleText(status int, title string) {
if (status/100 == 4) || (status/100 == 5) {
diff --git a/modules/context/form.go b/modules/context/form.go
index c7b76c614c..e3afad0a90 100644
--- a/modules/context/form.go
+++ b/modules/context/form.go
@@ -13,6 +13,7 @@ import (
"text/template"
"code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/util"
)
// Forms a new enhancement of http.Request
@@ -225,3 +226,16 @@ func (f *Forms) MustBool(key string, defaults ...bool) bool {
}
return v
}
+
+// MustOptionalBool returns request form as OptionalBool with default
+func (f *Forms) MustOptionalBool(key string, defaults ...util.OptionalBool) util.OptionalBool {
+ value := (*http.Request)(f).FormValue(key)
+ if len(value) == 0 {
+ return util.OptionalBoolNone
+ }
+ v, err := strconv.ParseBool((*http.Request)(f).FormValue(key))
+ if len(defaults) > 0 && err != nil {
+ return defaults[0]
+ }
+ return util.OptionalBoolOf(v)
+}