diff options
Diffstat (limited to 'matterclient/users.go')
-rw-r--r-- | matterclient/users.go | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/matterclient/users.go b/matterclient/users.go deleted file mode 100644 index 42c4162c..00000000 --- a/matterclient/users.go +++ /dev/null @@ -1,165 +0,0 @@ -package matterclient - -import ( - "errors" - "time" - - "github.com/mattermost/mattermost-server/v5/model" -) - -func (m *MMClient) GetNickName(userId string) string { //nolint:golint - user := m.GetUser(userId) - if user != nil { - return user.Nickname - } - return "" -} - -func (m *MMClient) GetStatus(userId string) string { //nolint:golint - res, resp := m.Client.GetUserStatus(userId, "") - if resp.Error != nil { - return "" - } - if res.Status == model.STATUS_AWAY { - return "away" - } - if res.Status == model.STATUS_ONLINE { - return "online" - } - return "offline" -} - -func (m *MMClient) GetStatuses() map[string]string { - var ids []string - statuses := make(map[string]string) - for id := range m.Users { - ids = append(ids, id) - } - res, resp := m.Client.GetUsersStatusesByIds(ids) - if resp.Error != nil { - return statuses - } - for _, status := range res { - statuses[status.UserId] = "offline" - if status.Status == model.STATUS_AWAY { - statuses[status.UserId] = "away" - } - if status.Status == model.STATUS_ONLINE { - statuses[status.UserId] = "online" - } - } - return statuses -} - -func (m *MMClient) GetTeamId() string { //nolint:golint - return m.Team.Id -} - -// GetTeamName returns the name of the specified teamId -func (m *MMClient) GetTeamName(teamId string) string { //nolint:golint - m.RLock() - defer m.RUnlock() - for _, t := range m.OtherTeams { - if t.Id == teamId { - return t.Team.Name - } - } - return "" -} - -func (m *MMClient) GetUser(userId string) *model.User { //nolint:golint - m.Lock() - defer m.Unlock() - _, ok := m.Users[userId] - if !ok { - res, resp := m.Client.GetUser(userId, "") - if resp.Error != nil { - return nil - } - m.Users[userId] = res - } - return m.Users[userId] -} - -func (m *MMClient) GetUserName(userId string) string { //nolint:golint - user := m.GetUser(userId) - if user != nil { - return user.Username - } - return "" -} - -func (m *MMClient) GetUsers() map[string]*model.User { - users := make(map[string]*model.User) - m.RLock() - defer m.RUnlock() - for k, v := range m.Users { - users[k] = v - } - return users -} - -func (m *MMClient) UpdateUsers() error { - idx := 0 - max := 200 - mmusers, resp := m.Client.GetUsers(idx, max, "") - if resp.Error != nil { - return errors.New(resp.Error.DetailedError) - } - for len(mmusers) > 0 { - m.Lock() - for _, user := range mmusers { - m.Users[user.Id] = user - } - m.Unlock() - mmusers, resp = m.Client.GetUsers(idx, max, "") - time.Sleep(time.Millisecond * 300) - if resp.Error != nil { - return errors.New(resp.Error.DetailedError) - } - idx++ - } - return nil -} - -func (m *MMClient) UpdateUserNick(nick string) error { - user := m.User - user.Nickname = nick - _, resp := m.Client.UpdateUser(user) - if resp.Error != nil { - return resp.Error - } - return nil -} - -func (m *MMClient) UsernamesInChannel(channelId string) []string { //nolint:golint - res, resp := m.Client.GetChannelMembers(channelId, 0, 50000, "") - if resp.Error != nil { - m.logger.Errorf("UsernamesInChannel(%s) failed: %s", channelId, resp.Error) - return []string{} - } - allusers := m.GetUsers() - result := []string{} - for _, member := range *res { - result = append(result, allusers[member.UserId].Nickname) - } - return result -} - -func (m *MMClient) UpdateStatus(userId string, status string) error { //nolint:golint - _, resp := m.Client.UpdateUserStatus(userId, &model.Status{Status: status}) - if resp.Error != nil { - return resp.Error - } - return nil -} - -func (m *MMClient) UpdateUser(userId string) { //nolint:golint - m.Lock() - defer m.Unlock() - res, resp := m.Client.GetUser(userId, "") - if resp.Error != nil { - return - } - m.Users[userId] = res -} |