Let ctx.FormOptionalBool() return optional.Option[bool] (#29461)
just some refactoring bits towards replacing **util.OptionalBool** with **optional.Option[bool]** (cherry picked from commit 274c0aea2e88db9bc41690c90e13e8aedf6193d4)
This commit is contained in:
parent
c498c07adf
commit
7b23949f29
5 changed files with 22 additions and 19 deletions
|
@ -15,6 +15,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/container"
|
"code.gitea.io/gitea/modules/container"
|
||||||
|
"code.gitea.io/gitea/modules/optional"
|
||||||
"code.gitea.io/gitea/modules/structs"
|
"code.gitea.io/gitea/modules/structs"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
@ -228,10 +229,10 @@ type FindReleasesOptions struct {
|
||||||
RepoID int64
|
RepoID int64
|
||||||
IncludeDrafts bool
|
IncludeDrafts bool
|
||||||
IncludeTags bool
|
IncludeTags bool
|
||||||
IsPreRelease util.OptionalBool
|
IsPreRelease optional.Option[bool]
|
||||||
IsDraft util.OptionalBool
|
IsDraft optional.Option[bool]
|
||||||
TagNames []string
|
TagNames []string
|
||||||
HasSha1 util.OptionalBool // useful to find draft releases which are created with existing tags
|
HasSha1 optional.Option[bool] // useful to find draft releases which are created with existing tags
|
||||||
}
|
}
|
||||||
|
|
||||||
func (opts FindReleasesOptions) ToConds() builder.Cond {
|
func (opts FindReleasesOptions) ToConds() builder.Cond {
|
||||||
|
@ -246,14 +247,14 @@ func (opts FindReleasesOptions) ToConds() builder.Cond {
|
||||||
if len(opts.TagNames) > 0 {
|
if len(opts.TagNames) > 0 {
|
||||||
cond = cond.And(builder.In("tag_name", opts.TagNames))
|
cond = cond.And(builder.In("tag_name", opts.TagNames))
|
||||||
}
|
}
|
||||||
if !opts.IsPreRelease.IsNone() {
|
if opts.IsPreRelease.Has() {
|
||||||
cond = cond.And(builder.Eq{"is_prerelease": opts.IsPreRelease.IsTrue()})
|
cond = cond.And(builder.Eq{"is_prerelease": opts.IsPreRelease.Value()})
|
||||||
}
|
}
|
||||||
if !opts.IsDraft.IsNone() {
|
if opts.IsDraft.Has() {
|
||||||
cond = cond.And(builder.Eq{"is_draft": opts.IsDraft.IsTrue()})
|
cond = cond.And(builder.Eq{"is_draft": opts.IsDraft.Value()})
|
||||||
}
|
}
|
||||||
if !opts.HasSha1.IsNone() {
|
if opts.HasSha1.Has() {
|
||||||
if opts.HasSha1.IsTrue() {
|
if opts.HasSha1.Value() {
|
||||||
cond = cond.And(builder.Neq{"sha1": ""})
|
cond = cond.And(builder.Neq{"sha1": ""})
|
||||||
} else {
|
} else {
|
||||||
cond = cond.And(builder.Eq{"sha1": ""})
|
cond = cond.And(builder.Eq{"sha1": ""})
|
||||||
|
@ -275,7 +276,7 @@ func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) {
|
||||||
ListOptions: listOptions,
|
ListOptions: listOptions,
|
||||||
IncludeDrafts: true,
|
IncludeDrafts: true,
|
||||||
IncludeTags: true,
|
IncludeTags: true,
|
||||||
HasSha1: util.OptionalBoolTrue,
|
HasSha1: optional.Some(true),
|
||||||
RepoID: repoID,
|
RepoID: repoID,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import (
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/markup/markdown"
|
"code.gitea.io/gitea/modules/markup/markdown"
|
||||||
|
"code.gitea.io/gitea/modules/optional"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
"code.gitea.io/gitea/modules/web"
|
"code.gitea.io/gitea/modules/web"
|
||||||
|
@ -228,7 +229,7 @@ func TagsList(ctx *context.Context) {
|
||||||
// the drafts should also be included because a real tag might be used as a draft.
|
// the drafts should also be included because a real tag might be used as a draft.
|
||||||
IncludeDrafts: true,
|
IncludeDrafts: true,
|
||||||
IncludeTags: true,
|
IncludeTags: true,
|
||||||
HasSha1: util.OptionalBoolTrue,
|
HasSha1: optional.Some(true),
|
||||||
RepoID: ctx.Repo.Repository.ID,
|
RepoID: ctx.Repo.Repository.ID,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
"code.gitea.io/gitea/modules/util"
|
||||||
"code.gitea.io/gitea/services/context"
|
"code.gitea.io/gitea/services/context"
|
||||||
"code.gitea.io/gitea/services/convert"
|
"code.gitea.io/gitea/services/convert"
|
||||||
)
|
)
|
||||||
|
@ -24,7 +25,7 @@ func Search(ctx *context.Context) {
|
||||||
Keyword: ctx.FormTrim("q"),
|
Keyword: ctx.FormTrim("q"),
|
||||||
UID: ctx.FormInt64("uid"),
|
UID: ctx.FormInt64("uid"),
|
||||||
Type: user_model.UserTypeIndividual,
|
Type: user_model.UserTypeIndividual,
|
||||||
IsActive: ctx.FormOptionalBool("active"),
|
IsActive: util.OptionalBoolFromGeneric(ctx.FormOptionalBool("active")),
|
||||||
ListOptions: listOptions,
|
ListOptions: listOptions,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -17,8 +17,8 @@ import (
|
||||||
"code.gitea.io/gitea/modules/httplib"
|
"code.gitea.io/gitea/modules/httplib"
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
"code.gitea.io/gitea/modules/optional"
|
||||||
"code.gitea.io/gitea/modules/translation"
|
"code.gitea.io/gitea/modules/translation"
|
||||||
"code.gitea.io/gitea/modules/util"
|
|
||||||
"code.gitea.io/gitea/modules/web/middleware"
|
"code.gitea.io/gitea/modules/web/middleware"
|
||||||
|
|
||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
|
@ -207,17 +207,17 @@ func (b *Base) FormBool(key string) bool {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
// FormOptionalBool returns an OptionalBoolTrue or OptionalBoolFalse if the value
|
// FormOptionalBool returns an optional.Some(true) or optional.Some(false) if the value
|
||||||
// for the provided key exists in the form else it returns OptionalBoolNone
|
// for the provided key exists in the form else it returns optional.None[bool]()
|
||||||
func (b *Base) FormOptionalBool(key string) util.OptionalBool {
|
func (b *Base) FormOptionalBool(key string) optional.Option[bool] {
|
||||||
value := b.Req.FormValue(key)
|
value := b.Req.FormValue(key)
|
||||||
if len(value) == 0 {
|
if len(value) == 0 {
|
||||||
return util.OptionalBoolNone
|
return optional.None[bool]()
|
||||||
}
|
}
|
||||||
s := b.Req.FormValue(key)
|
s := b.Req.FormValue(key)
|
||||||
v, _ := strconv.ParseBool(s)
|
v, _ := strconv.ParseBool(s)
|
||||||
v = v || strings.EqualFold(s, "on")
|
v = v || strings.EqualFold(s, "on")
|
||||||
return util.OptionalBoolOf(v)
|
return optional.Some(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Base) SetFormString(key, value string) {
|
func (b *Base) SetFormString(key, value string) {
|
||||||
|
|
|
@ -547,7 +547,7 @@ func RepoAssignment(ctx *Context) context.CancelFunc {
|
||||||
ctx.Data["NumTags"], err = db.Count[repo_model.Release](ctx, repo_model.FindReleasesOptions{
|
ctx.Data["NumTags"], err = db.Count[repo_model.Release](ctx, repo_model.FindReleasesOptions{
|
||||||
IncludeDrafts: true,
|
IncludeDrafts: true,
|
||||||
IncludeTags: true,
|
IncludeTags: true,
|
||||||
HasSha1: util.OptionalBoolTrue, // only draft releases which are created with existing tags
|
HasSha1: optional.Some(true), // only draft releases which are created with existing tags
|
||||||
RepoID: ctx.Repo.Repository.ID,
|
RepoID: ctx.Repo.Repository.ID,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue