Skip to content

Commit df080cf

Browse files
committed
fix
1 parent d87aa94 commit df080cf

File tree

4 files changed

+25
-27
lines changed

4 files changed

+25
-27
lines changed

modules/optional/option.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,19 @@ func FromPtr[T any](v *T) Option[T] {
2828
return Some(*v)
2929
}
3030

31-
func FromNonDefaultFunc[T comparable](f T, isZero func(T) bool) Option[T] {
32-
if isZero(f) {
33-
return None[T]()
31+
func FromMapLookup[K comparable, V any](m map[K]V, k K) Option[V] {
32+
if v, ok := m[k]; ok {
33+
return Some(v)
3434
}
35-
return Some(f)
35+
return None[V]()
3636
}
3737

3838
func FromNonDefault[T comparable](v T) Option[T] {
39-
return FromNonDefaultFunc(v, func(v T) bool {
40-
var zero T
41-
return v == zero
42-
})
39+
var zero T
40+
if v == zero {
41+
return None[T]()
42+
}
43+
return Some(v)
4344
}
4445

4546
func (o Option[T]) Has() bool {

modules/optional/option_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@ func TestOption(t *testing.T) {
5757
assert.True(t, opt3.Has())
5858
assert.Equal(t, int(1), opt3.Value())
5959

60-
opt4 := optional.FromNonDefaultFunc(1, func(t int) bool {
61-
return t == 1
62-
})
60+
opt4 := optional.FromMapLookup(map[string]int{"a": 1}, "a")
61+
assert.True(t, opt4.Has())
62+
assert.Equal(t, 1, opt4.Value())
63+
opt4 = optional.FromMapLookup(map[string]int{"a": 1}, "b")
6364
assert.False(t, opt4.Has())
6465
}
6566

routers/api/v1/admin/user.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -234,15 +234,13 @@ func EditUser(ctx *context.APIContext) {
234234
}
235235

236236
opts := &user_service.UpdateOptions{
237-
FullName: optional.FromPtr(form.FullName),
238-
Website: optional.FromPtr(form.Website),
239-
Location: optional.FromPtr(form.Location),
240-
Description: optional.FromPtr(form.Description),
241-
IsActive: optional.FromPtr(form.Active),
242-
IsAdmin: user_service.UpdateOptionFieldFromPtr(form.Admin),
243-
Visibility: optional.FromNonDefaultFunc(api.VisibilityModes[form.Visibility], func(v api.VisibleType) bool {
244-
return v < api.VisibleTypePublic || v > api.VisibleTypePrivate
245-
}),
237+
FullName: optional.FromPtr(form.FullName),
238+
Website: optional.FromPtr(form.Website),
239+
Location: optional.FromPtr(form.Location),
240+
Description: optional.FromPtr(form.Description),
241+
IsActive: optional.FromPtr(form.Active),
242+
IsAdmin: user_service.UpdateOptionFieldFromPtr(form.Admin),
243+
Visibility: optional.FromMapLookup(api.VisibilityModes, form.Visibility),
246244
AllowGitHook: optional.FromPtr(form.AllowGitHook),
247245
AllowImportLocal: optional.FromPtr(form.AllowImportLocal),
248246
MaxRepoCreation: optional.FromPtr(form.MaxRepoCreation),

routers/api/v1/org/org.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -387,13 +387,11 @@ func Edit(ctx *context.APIContext) {
387387
}
388388

389389
opts := &user_service.UpdateOptions{
390-
FullName: optional.Some(form.FullName),
391-
Description: optional.Some(form.Description),
392-
Website: optional.Some(form.Website),
393-
Location: optional.Some(form.Location),
394-
Visibility: optional.FromNonDefaultFunc(api.VisibilityModes[form.Visibility], func(v api.VisibleType) bool {
395-
return v < api.VisibleTypePublic || v > api.VisibleTypePrivate
396-
}),
390+
FullName: optional.Some(form.FullName),
391+
Description: optional.Some(form.Description),
392+
Website: optional.Some(form.Website),
393+
Location: optional.Some(form.Location),
394+
Visibility: optional.FromMapLookup(api.VisibilityModes, form.Visibility),
397395
RepoAdminChangeTeamAccess: optional.FromPtr(form.RepoAdminChangeTeamAccess),
398396
}
399397
if err := user_service.UpdateUser(ctx, ctx.Org.Organization.AsUser(), opts); err != nil {

0 commit comments

Comments
 (0)