mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Let ctx.FormOptionalBool() return optional.Option[bool] (#29461)
just some refactoring bits towards replacing **util.OptionalBool** with **optional.Option[bool]**
This commit is contained in:
		| @@ -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" | ||||||
| @@ -223,7 +224,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) { | ||||||
|   | |||||||
| @@ -546,7 +546,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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user