summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-08-11 02:31:13 +0200
committerGitHub <noreply@github.com>2021-08-11 02:31:13 +0200
commitc4d70a032564f610b7215d3d3973943abbc7395f (patch)
tree2aa8fe44a1b4d0251a18ae671509d4f2439ed85d /modules
parent2eeae4edb685b22e926d301465d771fe7a0b0c83 (diff)
downloadgitea-c4d70a032564f610b7215d3d3973943abbc7395f.tar.gz
gitea-c4d70a032564f610b7215d3d3973943abbc7395f.zip
Rename ctx.Form() to ctx.FormString() and move code into own file (#16571)
Followup from #16562 prepare for #16567 * Rename ctx.Form() to ctx.FormString() * Reimplement FormX func to need less code and cpu cycles * Move code into own file
Diffstat (limited to 'modules')
-rw-r--r--modules/context/context.go36
-rw-r--r--modules/context/form.go231
-rw-r--r--modules/context/repo.go8
3 files changed, 31 insertions, 244 deletions
diff --git a/modules/context/context.go b/modules/context/context.go
index 041b81c668..3dbc2bb9dc 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -28,7 +28,6 @@ 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"
@@ -287,41 +286,6 @@ func (ctx *Context) Header() http.Header {
return ctx.Resp.Header()
}
-// Form returns request form as string with default
-func (ctx *Context) Form(key string, defaults ...string) string {
- return (*Forms)(ctx.Req).MustString(key, defaults...)
-}
-
-// FormTrim returns request form as string with default and trimmed spaces
-func (ctx *Context) FormTrim(key string, defaults ...string) string {
- return (*Forms)(ctx.Req).MustTrimmed(key, defaults...)
-}
-
-// FormStrings returns request form as strings with default
-func (ctx *Context) FormStrings(key string, defaults ...[]string) []string {
- return (*Forms)(ctx.Req).MustStrings(key, defaults...)
-}
-
-// FormInt returns request form as int with default
-func (ctx *Context) FormInt(key string, defaults ...int) int {
- return (*Forms)(ctx.Req).MustInt(key, defaults...)
-}
-
-// FormInt64 returns request form as int64 with default
-func (ctx *Context) FormInt64(key string, defaults ...int64) int64 {
- return (*Forms)(ctx.Req).MustInt64(key, defaults...)
-}
-
-// FormBool returns request form as bool with default
-func (ctx *Context) FormBool(key string, defaults ...bool) bool {
- return (*Forms)(ctx.Req).MustBool(key, defaults...)
-}
-
-// FormOptionalBool returns request form as OptionalBool with default
-func (ctx *Context) FormOptionalBool(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 e3afad0a90..8d18590973 100644
--- a/modules/context/form.go
+++ b/modules/context/form.go
@@ -5,237 +5,60 @@
package context
import (
- "errors"
- "net/http"
- "net/url"
"strconv"
"strings"
- "text/template"
- "code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/util"
)
-// Forms a new enhancement of http.Request
-type Forms http.Request
-
-// Values returns http.Request values
-func (f *Forms) Values() url.Values {
- return (*http.Request)(f).Form
-}
-
-// String returns request form as string
-func (f *Forms) String(key string) (string, error) {
- return (*http.Request)(f).FormValue(key), nil
-}
-
-// Trimmed returns request form as string with trimed spaces left and right
-func (f *Forms) Trimmed(key string) (string, error) {
- return strings.TrimSpace((*http.Request)(f).FormValue(key)), nil
+// FormString returns the first value matching the provided key in the form as a string
+func (ctx *Context) FormString(key string) string {
+ return ctx.Req.FormValue(key)
}
-// Strings returns request form as strings
-func (f *Forms) Strings(key string) ([]string, error) {
- if (*http.Request)(f).Form == nil {
- if err := (*http.Request)(f).ParseMultipartForm(32 << 20); err != nil {
- return nil, err
+// FormStrings returns a string slice for the provided key from the form
+func (ctx *Context) FormStrings(key string) []string {
+ if ctx.Req.Form == nil {
+ if err := ctx.Req.ParseMultipartForm(32 << 20); err != nil {
+ return nil
}
}
- if v, ok := (*http.Request)(f).Form[key]; ok {
- return v, nil
- }
- return nil, errors.New("not exist")
-}
-
-// Escape returns request form as escaped string
-func (f *Forms) Escape(key string) (string, error) {
- return template.HTMLEscapeString((*http.Request)(f).FormValue(key)), nil
-}
-
-// Int returns request form as int
-func (f *Forms) Int(key string) (int, error) {
- return strconv.Atoi((*http.Request)(f).FormValue(key))
-}
-
-// Int32 returns request form as int32
-func (f *Forms) Int32(key string) (int32, error) {
- v, err := strconv.ParseInt((*http.Request)(f).FormValue(key), 10, 32)
- return int32(v), err
-}
-
-// Int64 returns request form as int64
-func (f *Forms) Int64(key string) (int64, error) {
- return strconv.ParseInt((*http.Request)(f).FormValue(key), 10, 64)
-}
-
-// Uint returns request form as uint
-func (f *Forms) Uint(key string) (uint, error) {
- v, err := strconv.ParseUint((*http.Request)(f).FormValue(key), 10, 64)
- return uint(v), err
-}
-
-// Uint32 returns request form as uint32
-func (f *Forms) Uint32(key string) (uint32, error) {
- v, err := strconv.ParseUint((*http.Request)(f).FormValue(key), 10, 32)
- return uint32(v), err
-}
-
-// Uint64 returns request form as uint64
-func (f *Forms) Uint64(key string) (uint64, error) {
- return strconv.ParseUint((*http.Request)(f).FormValue(key), 10, 64)
-}
-
-// Bool returns request form as bool
-func (f *Forms) Bool(key string) (bool, error) {
- return strconv.ParseBool((*http.Request)(f).FormValue(key))
-}
-
-// Float32 returns request form as float32
-func (f *Forms) Float32(key string) (float32, error) {
- v, err := strconv.ParseFloat((*http.Request)(f).FormValue(key), 64)
- return float32(v), err
-}
-
-// Float64 returns request form as float64
-func (f *Forms) Float64(key string) (float64, error) {
- return strconv.ParseFloat((*http.Request)(f).FormValue(key), 64)
-}
-
-// MustString returns request form as string with default
-func (f *Forms) MustString(key string, defaults ...string) string {
- if v := (*http.Request)(f).FormValue(key); len(v) > 0 {
+ if v, ok := ctx.Req.Form[key]; ok {
return v
}
- if len(defaults) > 0 {
- return defaults[0]
- }
- return ""
+ return nil
}
-// MustTrimmed returns request form as string with default
-func (f *Forms) MustTrimmed(key string, defaults ...string) string {
- return strings.TrimSpace(f.MustString(key, defaults...))
+// FormTrim returns the first value for the provided key in the form as a space trimmed string
+func (ctx *Context) FormTrim(key string) string {
+ return strings.TrimSpace(ctx.Req.FormValue(key))
}
-// MustStrings returns request form as strings with default
-func (f *Forms) MustStrings(key string, defaults ...[]string) []string {
- if (*http.Request)(f).Form == nil {
- if err := (*http.Request)(f).ParseMultipartForm(32 << 20); err != nil {
- log.Error("ParseMultipartForm: %v", err)
- return []string{}
- }
- }
-
- if v, ok := (*http.Request)(f).Form[key]; ok {
- return v
- }
- if len(defaults) > 0 {
- return defaults[0]
- }
- return []string{}
-}
-
-// MustEscape returns request form as escaped string with default
-func (f *Forms) MustEscape(key string, defaults ...string) string {
- if v := (*http.Request)(f).FormValue(key); len(v) > 0 {
- return template.HTMLEscapeString(v)
- }
- if len(defaults) > 0 {
- return defaults[0]
- }
- return ""
-}
-
-// MustInt returns request form as int with default
-func (f *Forms) MustInt(key string, defaults ...int) int {
- v, err := strconv.Atoi((*http.Request)(f).FormValue(key))
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
- return v
-}
-
-// MustInt32 returns request form as int32 with default
-func (f *Forms) MustInt32(key string, defaults ...int32) int32 {
- v, err := strconv.ParseInt((*http.Request)(f).FormValue(key), 10, 32)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
- return int32(v)
-}
-
-// MustInt64 returns request form as int64 with default
-func (f *Forms) MustInt64(key string, defaults ...int64) int64 {
- v, err := strconv.ParseInt((*http.Request)(f).FormValue(key), 10, 64)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
+// FormInt returns the first value for the provided key in the form as an int
+func (ctx *Context) FormInt(key string) int {
+ v, _ := strconv.Atoi(ctx.Req.FormValue(key))
return v
}
-// MustUint returns request form as uint with default
-func (f *Forms) MustUint(key string, defaults ...uint) uint {
- v, err := strconv.ParseUint((*http.Request)(f).FormValue(key), 10, 64)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
- return uint(v)
-}
-
-// MustUint32 returns request form as uint32 with default
-func (f *Forms) MustUint32(key string, defaults ...uint32) uint32 {
- v, err := strconv.ParseUint((*http.Request)(f).FormValue(key), 10, 32)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
- return uint32(v)
-}
-
-// MustUint64 returns request form as uint64 with default
-func (f *Forms) MustUint64(key string, defaults ...uint64) uint64 {
- v, err := strconv.ParseUint((*http.Request)(f).FormValue(key), 10, 64)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
- return v
-}
-
-// MustFloat32 returns request form as float32 with default
-func (f *Forms) MustFloat32(key string, defaults ...float32) float32 {
- v, err := strconv.ParseFloat((*http.Request)(f).FormValue(key), 32)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
- return float32(v)
-}
-
-// MustFloat64 returns request form as float64 with default
-func (f *Forms) MustFloat64(key string, defaults ...float64) float64 {
- v, err := strconv.ParseFloat((*http.Request)(f).FormValue(key), 64)
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
+// FormInt64 returns the first value for the provided key in the form as an int64
+func (ctx *Context) FormInt64(key string) int64 {
+ v, _ := strconv.ParseInt(ctx.Req.FormValue(key), 10, 64)
return v
}
-// MustBool returns request form as bool with default
-func (f *Forms) MustBool(key string, defaults ...bool) bool {
- v, err := strconv.ParseBool((*http.Request)(f).FormValue(key))
- if len(defaults) > 0 && err != nil {
- return defaults[0]
- }
+// FormBool returns true if the value for the provided key in the form is "1" or "true"
+func (ctx *Context) FormBool(key string) bool {
+ v, _ := strconv.ParseBool(ctx.Req.FormValue(key))
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)
+// FormOptionalBool returns an OptionalBoolTrue or OptionalBoolFalse if the value
+// for the provided key exists in the form else it returns OptionalBoolNone
+func (ctx *Context) FormOptionalBool(key string) util.OptionalBool {
+ value := ctx.Req.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]
- }
+ v, _ := strconv.ParseBool(ctx.Req.FormValue(key))
return util.OptionalBoolOf(v)
}
diff --git a/modules/context/repo.go b/modules/context/repo.go
index abd9ca5481..df71638350 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -346,7 +346,7 @@ func repoAssignment(ctx *Context, repo *models.Repository) {
// Check access.
if ctx.Repo.Permission.AccessMode == models.AccessModeNone {
- if ctx.Form("go-get") == "1" {
+ if ctx.FormString("go-get") == "1" {
EarlyResponseForGoGetMeta(ctx)
return
}
@@ -415,7 +415,7 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) {
owner, err = models.GetUserByName(userName)
if err != nil {
if models.IsErrUserNotExist(err) {
- if ctx.Form("go-get") == "1" {
+ if ctx.FormString("go-get") == "1" {
EarlyResponseForGoGetMeta(ctx)
return
}
@@ -437,7 +437,7 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) {
if err == nil {
RedirectToRepo(ctx, redirectRepoID)
} else if models.IsErrRepoRedirectNotExist(err) {
- if ctx.Form("go-get") == "1" {
+ if ctx.FormString("go-get") == "1" {
EarlyResponseForGoGetMeta(ctx)
return
}
@@ -618,7 +618,7 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) {
}
}
- if ctx.Form("go-get") == "1" {
+ if ctx.FormString("go-get") == "1" {
ctx.Data["GoGetImport"] = ComposeGoGetImport(owner.Name, repo.Name)
prefix := setting.AppURL + path.Join(owner.Name, repo.Name, "src", "branch", ctx.Repo.BranchName)
ctx.Data["GoDocDirectory"] = prefix + "{/dir}"