summaryrefslogtreecommitdiffstats
path: root/store
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2016-11-10 06:25:23 -0800
committerHarrison Healey <harrisonmhealey@gmail.com>2016-11-10 09:25:23 -0500
commit41b31b4c92932a74bb8cc9fbe6b64d327d903a37 (patch)
treed0a664c1e1f4b6c054f72a7ff201524385a2efaf /store
parentb46ced78def34f81742072c493992afff62c6fb7 (diff)
downloadchat-41b31b4c92932a74bb8cc9fbe6b64d327d903a37.tar.gz
chat-41b31b4c92932a74bb8cc9fbe6b64d327d903a37.tar.bz2
chat-41b31b4c92932a74bb8cc9fbe6b64d327d903a37.zip
PLT-4716 fixes cache invalidation issue (#4518)
* PLT-4716 fixes cache invalidation issue * Adding missing interface * Adding cache invalidation to channel notification preferences * Adding cache invalidation to channel notification preferences
Diffstat (limited to 'store')
-rw-r--r--store/sql_user_store.go13
-rw-r--r--store/store.go1
2 files changed, 14 insertions, 0 deletions
diff --git a/store/sql_user_store.go b/store/sql_user_store.go
index 984b544d7..aa3bb4380 100644
--- a/store/sql_user_store.go
+++ b/store/sql_user_store.go
@@ -555,6 +555,19 @@ func (us SqlUserStore) GetProfiles(teamId string, offset int, limit int) StoreCh
return storeChannel
}
+func (us SqlUserStore) InvalidateProfilesInChannelCacheByUser(userId string) {
+ keys := profilesInChannelCache.Keys()
+
+ for _, key := range keys {
+ if cacheItem, ok := profilesInChannelCache.Get(key); ok {
+ userMap := cacheItem.(map[string]*model.User)
+ if _, userInCache := userMap[userId]; userInCache {
+ profilesInChannelCache.Remove(key)
+ }
+ }
+ }
+}
+
func (us SqlUserStore) InvalidateProfilesInChannelCache(channelId string) {
profilesInChannelCache.Remove(channelId)
}
diff --git a/store/store.go b/store/store.go
index 83a077c10..d0790263a 100644
--- a/store/store.go
+++ b/store/store.go
@@ -143,6 +143,7 @@ type UserStore interface {
UpdateMfaActive(userId string, active bool) StoreChannel
Get(id string) StoreChannel
GetAll() StoreChannel
+ InvalidateProfilesInChannelCacheByUser(userId string)
InvalidateProfilesInChannelCache(channelId string)
GetProfilesInChannel(channelId string, offset int, limit int, allowFromCache bool) StoreChannel
GetProfilesNotInChannel(teamId string, channelId string, offset int, limit int) StoreChannel