Implement GET /users/autocomplete endpoint for APIv4 (#5742)

Этот коммит содержится в:
Joram Wilander
2017-03-13 08:29:41 -04:00
коммит произвёл George Goldberg
родитель c372ceebf8
Коммит 1860d05d62
8 изменённых файлов: 287 добавлений и 39 удалений

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

@@ -1183,31 +1183,49 @@ func VerifyUserEmail(userId string) *model.AppError {
return nil
}
func SearchUsersInChannel(channelId string, term string, searchOptions map[string]bool) ([]*model.User, *model.AppError) {
func SearchUsersInChannel(channelId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
if result := <-Srv.Store.User().SearchInChannel(channelId, term, searchOptions); result.Err != nil {
return nil, result.Err
} else {
return result.Data.([]*model.User), nil
users := result.Data.([]*model.User)
for _, user := range users {
SanitizeProfile(user, asAdmin)
}
return users, nil
}
}
func SearchUsersNotInChannel(teamId string, channelId string, term string, searchOptions map[string]bool) ([]*model.User, *model.AppError) {
func SearchUsersNotInChannel(teamId string, channelId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
if result := <-Srv.Store.User().SearchNotInChannel(teamId, channelId, term, searchOptions); result.Err != nil {
return nil, result.Err
} else {
return result.Data.([]*model.User), nil
users := result.Data.([]*model.User)
for _, user := range users {
SanitizeProfile(user, asAdmin)
}
return users, nil
}
}
func SearchUsersInTeam(teamId string, term string, searchOptions map[string]bool) ([]*model.User, *model.AppError) {
func SearchUsersInTeam(teamId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
if result := <-Srv.Store.User().Search(teamId, term, searchOptions); result.Err != nil {
return nil, result.Err
} else {
return result.Data.([]*model.User), nil
users := result.Data.([]*model.User)
for _, user := range users {
SanitizeProfile(user, asAdmin)
}
return users, nil
}
}
func AutocompleteUsersInChannel(teamId string, channelId string, term string, searchOptions map[string]bool) (*model.UserAutocompleteInChannel, *model.AppError) {
func AutocompleteUsersInChannel(teamId string, channelId string, term string, searchOptions map[string]bool, asAdmin bool) (*model.UserAutocompleteInChannel, *model.AppError) {
uchan := Srv.Store.User().SearchInChannel(channelId, term, searchOptions)
nuchan := Srv.Store.User().SearchNotInChannel(teamId, channelId, term, searchOptions)
@@ -1216,25 +1234,43 @@ func AutocompleteUsersInChannel(teamId string, channelId string, term string, se
if result := <-uchan; result.Err != nil {
return nil, result.Err
} else {
autocomplete.InChannel = result.Data.([]*model.User)
users := result.Data.([]*model.User)
for _, user := range users {
SanitizeProfile(user, asAdmin)
}
autocomplete.InChannel = users
}
if result := <-nuchan; result.Err != nil {
return nil, result.Err
} else {
autocomplete.OutOfChannel = result.Data.([]*model.User)
users := result.Data.([]*model.User)
for _, user := range users {
SanitizeProfile(user, asAdmin)
}
autocomplete.OutOfChannel = users
}
return autocomplete, nil
}
func AutocompleteUsersInTeam(teamId string, term string, searchOptions map[string]bool) (*model.UserAutocompleteInTeam, *model.AppError) {
func AutocompleteUsersInTeam(teamId string, term string, searchOptions map[string]bool, asAdmin bool) (*model.UserAutocompleteInTeam, *model.AppError) {
autocomplete := &model.UserAutocompleteInTeam{}
if result := <-Srv.Store.User().Search(teamId, term, searchOptions); result.Err != nil {
return nil, result.Err
} else {
autocomplete.InTeam = result.Data.([]*model.User)
users := result.Data.([]*model.User)
for _, user := range users {
SanitizeProfile(user, asAdmin)
}
autocomplete.InTeam = users
}
return autocomplete, nil