diff options
author | Corey Hulen <corey@hulen.com> | 2016-05-04 06:31:42 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-05-04 09:31:42 -0400 |
commit | 6611229cd7bd3cdfc0082c0a581145aaac0ab322 (patch) | |
tree | db6670a8c2716179bfe6e07b82588d83d3afb6bd /store/sql_user_store.go | |
parent | 6b06f49e8910ed44f619adad15ab268758312852 (diff) | |
download | chat-6611229cd7bd3cdfc0082c0a581145aaac0ab322.tar.gz chat-6611229cd7bd3cdfc0082c0a581145aaac0ab322.tar.bz2 chat-6611229cd7bd3cdfc0082c0a581145aaac0ab322.zip |
PLT-2707 Adding option to show DM list from all of server (#2871)
* PLT-2707 Adding option to show DM list from all of server
* Fixing loc
Diffstat (limited to 'store/sql_user_store.go')
-rw-r--r-- | store/sql_user_store.go | 70 |
1 files changed, 68 insertions, 2 deletions
diff --git a/store/sql_user_store.go b/store/sql_user_store.go index 07e974559..8d4f1a31b 100644 --- a/store/sql_user_store.go +++ b/store/sql_user_store.go @@ -454,7 +454,34 @@ func (s SqlUserStore) GetEtagForDirectProfiles(userId string) StoreChannel { Channels.Type = 'D' AND Channels.Id = ChannelMembers.ChannelId AND ChannelMembers.UserId = :UserId)) - `, map[string]interface{}{"UserId": userId}) + OR Id IN (SELECT + Name + FROM + Preferences + WHERE + UserId = :UserId + AND Category = 'direct_channel_show') + `, map[string]interface{}{"UserId": userId}) + if err != nil { + result.Data = fmt.Sprintf("%v.%v", model.CurrentVersion, model.GetMillis()) + } else { + result.Data = fmt.Sprintf("%v.%v", model.CurrentVersion, updateAt) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + +func (s SqlUserStore) GetEtagForAllProfiles() StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + updateAt, err := s.GetReplica().SelectInt("SELECT UpdateAt FROM Users ORDER BY UpdateAt DESC LIMIT 1") if err != nil { result.Data = fmt.Sprintf("%v.%v", model.CurrentVersion, model.GetMillis()) } else { @@ -468,6 +495,37 @@ func (s SqlUserStore) GetEtagForDirectProfiles(userId string) StoreChannel { return storeChannel } +func (us SqlUserStore) GetAllProfiles() StoreChannel { + + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + var users []*model.User + + if _, err := us.GetReplica().Select(&users, "SELECT * FROM Users"); err != nil { + result.Err = model.NewLocAppError("SqlUserStore.GetProfiles", "store.sql_user.get_profiles.app_error", nil, err.Error()) + } else { + + userMap := make(map[string]*model.User) + + for _, u := range users { + u.Password = "" + u.AuthData = "" + userMap[u.Id] = u + } + + result.Data = userMap + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlUserStore) GetEtagForProfiles(teamId string) StoreChannel { storeChannel := make(StoreChannel) @@ -548,7 +606,15 @@ func (us SqlUserStore) GetDirectProfiles(userId string) StoreChannel { WHERE Channels.Type = 'D' AND Channels.Id = ChannelMembers.ChannelId - AND ChannelMembers.UserId = :UserId))`, map[string]interface{}{"UserId": userId}); err != nil { + AND ChannelMembers.UserId = :UserId)) + OR Id IN (SELECT + Name + FROM + Preferences + WHERE + UserId = :UserId + AND Category = 'direct_channel_show') + `, map[string]interface{}{"UserId": userId}); err != nil { result.Err = model.NewLocAppError("SqlUserStore.GetDirectProfiles", "store.sql_user.get_profiles.app_error", nil, err.Error()) } else { |