Refactor: func StringInSlice to slices.Contains (#24262)

* Refactor: Use generic to change func StringInSlice to Contains

* Refactor: Use generic to change func stringNotInSlice to Contains

Make utils.go (dir server/public/utils) and func Contains

* Refactor: Move func Contains from channels/utils to public/utils

Move func Contains from channels/utils to public/utils

Fix import declarations line

* Docs: Add a description of the Contains function

* Test: add TestContains

Add a test code for a Contain function
Этот коммит содержится в:
Jian Lim
2023-09-01 16:05:27 +09:00
коммит произвёл GitHub
родитель 831a7db73d
Коммит 8c2fc88471
14 изменённых файлов: 443 добавлений и 46 удалений

Просмотреть файл

@@ -11,6 +11,8 @@ import (
"strings"
"github.com/pkg/errors"
"github.com/mattermost/mattermost/server/public/utils"
)
// AutocompleteArgType describes autocomplete argument type
@@ -234,7 +236,7 @@ func (ad *AutocompleteData) IsValid() error {
return errors.New("Command should be lowercase")
}
roles := []string{SystemAdminRoleId, SystemUserRoleId, ""}
if stringNotInSlice(ad.RoleID, roles) {
if !utils.Contains(roles, ad.RoleID) {
return errors.New("Wrong role in the autocomplete data")
}
if len(ad.Arguments) > 0 && len(ad.SubCommands) > 0 {
@@ -399,12 +401,3 @@ func (a *AutocompleteArg) UnmarshalJSON(b []byte) error {
}
return nil
}
func stringNotInSlice(a string, slice []string) bool {
for _, b := range slice {
if b == a {
return false
}
}
return true
}