mirror of
https://github.com/usememos/memos.git
synced 2025-02-14 10:20:49 +01:00
chore: update store cache
This commit is contained in:
parent
93e8fa4912
commit
cf423026a5
@ -5,5 +5,5 @@ import (
|
||||
)
|
||||
|
||||
func getUserSettingCacheKey(userID int32, key string) string {
|
||||
return fmt.Sprintf("%d-%s-v1", userID, key)
|
||||
return fmt.Sprintf("%d-%s", userID, key)
|
||||
}
|
||||
|
@ -70,7 +70,10 @@ func (s *Store) ListIdentityProviders(ctx context.Context, find *FindIdentityPro
|
||||
func (s *Store) GetIdentityProvider(ctx context.Context, find *FindIdentityProvider) (*storepb.IdentityProvider, error) {
|
||||
if find.ID != nil {
|
||||
if cache, ok := s.idpCache.Load(*find.ID); ok {
|
||||
return cache.(*storepb.IdentityProvider), nil
|
||||
identityProvider, ok := cache.(*storepb.IdentityProvider)
|
||||
if ok {
|
||||
return identityProvider, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ type Store struct {
|
||||
driver Driver
|
||||
workspaceSettingCache sync.Map // map[string]*storepb.WorkspaceSetting
|
||||
userCache sync.Map // map[int]*User
|
||||
userSettingCache sync.Map // map[string]*UserSetting
|
||||
userSettingCache sync.Map // map[string]*storepb.UserSetting
|
||||
idpCache sync.Map // map[int]*storepb.IdentityProvider
|
||||
}
|
||||
|
||||
|
@ -131,9 +131,11 @@ func (s *Store) GetUser(ctx context.Context, find *FindUser) (*User, error) {
|
||||
if *find.ID == SystemBotID {
|
||||
return SystemBot, nil
|
||||
}
|
||||
|
||||
if cache, ok := s.userCache.Load(*find.ID); ok {
|
||||
return cache.(*User), nil
|
||||
user, ok := cache.(*User)
|
||||
if ok {
|
||||
return user, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,10 @@ func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSetting) ([]
|
||||
func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*storepb.UserSetting, error) {
|
||||
if find.UserID != nil {
|
||||
if cache, ok := s.userSettingCache.Load(getUserSettingCacheKey(*find.UserID, find.Key.String())); ok {
|
||||
return cache.(*storepb.UserSetting), nil
|
||||
userSetting, ok := cache.(*storepb.UserSetting)
|
||||
if ok {
|
||||
return userSetting, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,10 @@ func (s *Store) ListWorkspaceSettings(ctx context.Context, find *FindWorkspaceSe
|
||||
|
||||
func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSetting) (*storepb.WorkspaceSetting, error) {
|
||||
if cache, ok := s.workspaceSettingCache.Load(find.Name); ok {
|
||||
return cache.(*storepb.WorkspaceSetting), nil
|
||||
workspaceSetting, ok := cache.(*storepb.WorkspaceSetting)
|
||||
if ok {
|
||||
return workspaceSetting, nil
|
||||
}
|
||||
}
|
||||
|
||||
list, err := s.ListWorkspaceSettings(ctx, find)
|
||||
@ -91,7 +94,7 @@ func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSett
|
||||
return nil, nil
|
||||
}
|
||||
if len(list) > 1 {
|
||||
return nil, errors.Errorf("Found multiple workspace settings with key %s", find.Name)
|
||||
return nil, errors.Errorf("found multiple workspace settings with key %s", find.Name)
|
||||
}
|
||||
return list[0], nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user