chore: tweak store methods name

This commit is contained in:
Steven
2024-04-17 08:56:52 +08:00
parent 00d25b12c1
commit 14d4cfd5a4
17 changed files with 68 additions and 198 deletions

View File

@ -103,7 +103,7 @@ func findObjectStorage(ctx context.Context, dataStore *store.Store) (*s3.Client,
if workspaceStorageSetting.StorageType != storepb.WorkspaceStorageSetting_STORAGE_TYPE_EXTERNAL || workspaceStorageSetting.ActivedExternalStorageId == nil { if workspaceStorageSetting.StorageType != storepb.WorkspaceStorageSetting_STORAGE_TYPE_EXTERNAL || workspaceStorageSetting.ActivedExternalStorageId == nil {
return nil, nil return nil, nil
} }
storage, err := dataStore.GetStorageV1(ctx, &store.FindStorage{ID: workspaceStorageSetting.ActivedExternalStorageId}) storage, err := dataStore.GetStorage(ctx, &store.FindStorage{ID: workspaceStorageSetting.ActivedExternalStorageId})
if err != nil { if err != nil {
return nil, errors.Wrap(err, "Failed to find storage") return nil, errors.Wrap(err, "Failed to find storage")
} }

View File

@ -72,7 +72,7 @@ func (s *APIV2Service) SignIn(ctx context.Context, request *apiv2pb.SignInReques
} }
func (s *APIV2Service) SignInWithSSO(ctx context.Context, request *apiv2pb.SignInWithSSORequest) (*apiv2pb.SignInWithSSOResponse, error) { func (s *APIV2Service) SignInWithSSO(ctx context.Context, request *apiv2pb.SignInWithSSORequest) (*apiv2pb.SignInWithSSOResponse, error) {
identityProvider, err := s.Store.GetIdentityProviderV1(ctx, &store.FindIdentityProvider{ identityProvider, err := s.Store.GetIdentityProvider(ctx, &store.FindIdentityProvider{
ID: &request.IdpId, ID: &request.IdpId,
}) })
if err != nil { if err != nil {

View File

@ -21,7 +21,7 @@ func (s *APIV2Service) CreateIdentityProvider(ctx context.Context, request *apiv
return nil, status.Errorf(codes.PermissionDenied, "permission denied") return nil, status.Errorf(codes.PermissionDenied, "permission denied")
} }
identityProvider, err := s.Store.CreateIdentityProviderV1(ctx, convertIdentityProviderToStore(request.IdentityProvider)) identityProvider, err := s.Store.CreateIdentityProvider(ctx, convertIdentityProviderToStore(request.IdentityProvider))
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to create identity provider, error: %+v", err) return nil, status.Errorf(codes.Internal, "failed to create identity provider, error: %+v", err)
} }
@ -31,7 +31,7 @@ func (s *APIV2Service) CreateIdentityProvider(ctx context.Context, request *apiv
} }
func (s *APIV2Service) ListIdentityProviders(ctx context.Context, _ *apiv2pb.ListIdentityProvidersRequest) (*apiv2pb.ListIdentityProvidersResponse, error) { func (s *APIV2Service) ListIdentityProviders(ctx context.Context, _ *apiv2pb.ListIdentityProvidersRequest) (*apiv2pb.ListIdentityProvidersResponse, error) {
identityProviders, err := s.Store.ListIdentityProvidersV1(ctx, &store.FindIdentityProvider{}) identityProviders, err := s.Store.ListIdentityProviders(ctx, &store.FindIdentityProvider{})
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to list identity providers, error: %+v", err) return nil, status.Errorf(codes.Internal, "failed to list identity providers, error: %+v", err)
} }
@ -50,7 +50,7 @@ func (s *APIV2Service) GetIdentityProvider(ctx context.Context, request *apiv2pb
if err != nil { if err != nil {
return nil, status.Errorf(codes.InvalidArgument, "invalid identity provider name: %v", err) return nil, status.Errorf(codes.InvalidArgument, "invalid identity provider name: %v", err)
} }
identityProvider, err := s.Store.GetIdentityProviderV1(ctx, &store.FindIdentityProvider{ identityProvider, err := s.Store.GetIdentityProvider(ctx, &store.FindIdentityProvider{
ID: &id, ID: &id,
}) })
if err != nil { if err != nil {
@ -86,7 +86,7 @@ func (s *APIV2Service) UpdateIdentityProvider(ctx context.Context, request *apiv
} }
} }
identityProvider, err := s.Store.UpdateIdentityProviderV1(ctx, update) identityProvider, err := s.Store.UpdateIdentityProvider(ctx, update)
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to update identity provider, error: %+v", err) return nil, status.Errorf(codes.Internal, "failed to update identity provider, error: %+v", err)
} }

View File

@ -296,7 +296,7 @@ func SaveResourceBlob(ctx context.Context, s *store.Store, create *store.Resourc
if workspaceStorageSetting.ActivedExternalStorageId == nil { if workspaceStorageSetting.ActivedExternalStorageId == nil {
return errors.Errorf("No actived external storage found") return errors.Errorf("No actived external storage found")
} }
storage, err := s.GetStorageV1(ctx, &store.FindStorage{ID: workspaceStorageSetting.ActivedExternalStorageId}) storage, err := s.GetStorage(ctx, &store.FindStorage{ID: workspaceStorageSetting.ActivedExternalStorageId})
if err != nil { if err != nil {
return errors.Wrap(err, "Failed to find actived external storage") return errors.Wrap(err, "Failed to find actived external storage")
} }

View File

@ -20,7 +20,7 @@ func (s *APIV2Service) CreateStorage(ctx context.Context, request *apiv2pb.Creat
return nil, status.Errorf(codes.PermissionDenied, "permission denied") return nil, status.Errorf(codes.PermissionDenied, "permission denied")
} }
storage, err := s.Store.CreateStorageV1(ctx, convertStorageToStore(request.Storage)) storage, err := s.Store.CreateStorage(ctx, convertStorageToStore(request.Storage))
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to create storage, error: %+v", err) return nil, status.Errorf(codes.Internal, "failed to create storage, error: %+v", err)
} }
@ -30,7 +30,7 @@ func (s *APIV2Service) CreateStorage(ctx context.Context, request *apiv2pb.Creat
} }
func (s *APIV2Service) ListStorages(ctx context.Context, _ *apiv2pb.ListStoragesRequest) (*apiv2pb.ListStoragesResponse, error) { func (s *APIV2Service) ListStorages(ctx context.Context, _ *apiv2pb.ListStoragesRequest) (*apiv2pb.ListStoragesResponse, error) {
storages, err := s.Store.ListStoragesV1(ctx, &store.FindStorage{}) storages, err := s.Store.ListStorages(ctx, &store.FindStorage{})
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to list storages, error: %+v", err) return nil, status.Errorf(codes.Internal, "failed to list storages, error: %+v", err)
} }
@ -45,7 +45,7 @@ func (s *APIV2Service) ListStorages(ctx context.Context, _ *apiv2pb.ListStorages
} }
func (s *APIV2Service) GetStorage(ctx context.Context, request *apiv2pb.GetStorageRequest) (*apiv2pb.GetStorageResponse, error) { func (s *APIV2Service) GetStorage(ctx context.Context, request *apiv2pb.GetStorageRequest) (*apiv2pb.GetStorageResponse, error) {
storage, err := s.Store.GetStorageV1(ctx, &store.FindStorage{ storage, err := s.Store.GetStorage(ctx, &store.FindStorage{
ID: &request.Id, ID: &request.Id,
}) })
if err != nil { if err != nil {
@ -77,7 +77,7 @@ func (s *APIV2Service) UpdateStorage(ctx context.Context, request *apiv2pb.Updat
} }
} }
storage, err := s.Store.UpdateStorageV1(ctx, update) storage, err := s.Store.UpdateStorage(ctx, update)
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to update storage, error: %+v", err) return nil, status.Errorf(codes.Internal, "failed to update storage, error: %+v", err)
} }

View File

@ -13,7 +13,7 @@ import (
) )
func (s *APIV2Service) ListWorkspaceSettings(ctx context.Context, _ *apiv2pb.ListWorkspaceSettingsRequest) (*apiv2pb.ListWorkspaceSettingsResponse, error) { func (s *APIV2Service) ListWorkspaceSettings(ctx context.Context, _ *apiv2pb.ListWorkspaceSettingsRequest) (*apiv2pb.ListWorkspaceSettingsResponse, error) {
workspaceSettings, err := s.Store.ListWorkspaceSettingsV1(ctx, &store.FindWorkspaceSetting{}) workspaceSettings, err := s.Store.ListWorkspaceSettings(ctx, &store.FindWorkspaceSetting{})
if err != nil { if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get workspace setting: %v", err) return nil, status.Errorf(codes.Internal, "failed to get workspace setting: %v", err)
} }
@ -36,7 +36,7 @@ func (s *APIV2Service) GetWorkspaceSetting(ctx context.Context, request *apiv2pb
return nil, status.Errorf(codes.InvalidArgument, "invalid workspace setting name: %v", err) return nil, status.Errorf(codes.InvalidArgument, "invalid workspace setting name: %v", err)
} }
settingKey := storepb.WorkspaceSettingKey(storepb.WorkspaceSettingKey_value[settingKeyString]) settingKey := storepb.WorkspaceSettingKey(storepb.WorkspaceSettingKey_value[settingKeyString])
workspaceSetting, err := s.Store.GetWorkspaceSettingV1(ctx, &store.FindWorkspaceSetting{ workspaceSetting, err := s.Store.GetWorkspaceSetting(ctx, &store.FindWorkspaceSetting{
Name: settingKey.String(), Name: settingKey.String(),
}) })
if err != nil { if err != nil {
@ -64,7 +64,7 @@ func (s *APIV2Service) SetWorkspaceSetting(ctx context.Context, request *apiv2pb
return nil, status.Errorf(codes.PermissionDenied, "permission denied") return nil, status.Errorf(codes.PermissionDenied, "permission denied")
} }
if _, err := s.Store.UpsertWorkspaceSettingV1(ctx, convertWorkspaceSettingToStore(request.Setting)); err != nil { if _, err := s.Store.UpsertWorkspaceSetting(ctx, convertWorkspaceSettingToStore(request.Setting)); err != nil {
return nil, status.Errorf(codes.Internal, "failed to upsert workspace setting: %v", err) return nil, status.Errorf(codes.Internal, "failed to upsert workspace setting: %v", err)
} }

View File

@ -133,7 +133,7 @@ func (s *Server) getOrUpsertWorkspaceBasicSetting(ctx context.Context) (*storepb
modified = true modified = true
} }
if modified { if modified {
workspaceSetting, err := s.Store.UpsertWorkspaceSettingV1(ctx, &storepb.WorkspaceSetting{ workspaceSetting, err := s.Store.UpsertWorkspaceSetting(ctx, &storepb.WorkspaceSetting{
Key: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_BASIC, Key: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_BASIC,
Value: &storepb.WorkspaceSetting_BasicSetting{BasicSetting: workspaceBasicSetting}, Value: &storepb.WorkspaceSetting_BasicSetting{BasicSetting: workspaceBasicSetting},
}) })

View File

@ -4,6 +4,6 @@ import (
"fmt" "fmt"
) )
func getUserSettingV1CacheKey(userID int32, key string) string { func getUserSettingCacheKey(userID int32, key string) string {
return fmt.Sprintf("%d-%s-v1", userID, key) return fmt.Sprintf("%d-%s-v1", userID, key)
} }

View File

@ -32,7 +32,7 @@ type DeleteIdentityProvider struct {
ID int32 ID int32
} }
func (s *Store) CreateIdentityProviderV1(ctx context.Context, create *storepb.IdentityProvider) (*storepb.IdentityProvider, error) { func (s *Store) CreateIdentityProvider(ctx context.Context, create *storepb.IdentityProvider) (*storepb.IdentityProvider, error) {
raw, err := convertIdentityProviderToRaw(create) raw, err := convertIdentityProviderToRaw(create)
if err != nil { if err != nil {
return nil, err return nil, err
@ -46,11 +46,11 @@ func (s *Store) CreateIdentityProviderV1(ctx context.Context, create *storepb.Id
if err != nil { if err != nil {
return nil, err return nil, err
} }
s.idpV1Cache.Store(identityProvider.Id, identityProvider) s.idpCache.Store(identityProvider.Id, identityProvider)
return identityProvider, nil return identityProvider, nil
} }
func (s *Store) ListIdentityProvidersV1(ctx context.Context, find *FindIdentityProvider) ([]*storepb.IdentityProvider, error) { func (s *Store) ListIdentityProviders(ctx context.Context, find *FindIdentityProvider) ([]*storepb.IdentityProvider, error) {
list, err := s.driver.ListIdentityProviders(ctx, find) list, err := s.driver.ListIdentityProviders(ctx, find)
if err != nil { if err != nil {
return nil, err return nil, err
@ -62,19 +62,19 @@ func (s *Store) ListIdentityProvidersV1(ctx context.Context, find *FindIdentityP
if err != nil { if err != nil {
return nil, err return nil, err
} }
s.idpV1Cache.Store(identityProvider.Id, identityProvider) s.idpCache.Store(identityProvider.Id, identityProvider)
} }
return identityProviders, nil return identityProviders, nil
} }
func (s *Store) GetIdentityProviderV1(ctx context.Context, find *FindIdentityProvider) (*storepb.IdentityProvider, error) { func (s *Store) GetIdentityProvider(ctx context.Context, find *FindIdentityProvider) (*storepb.IdentityProvider, error) {
if find.ID != nil { if find.ID != nil {
if cache, ok := s.idpV1Cache.Load(*find.ID); ok { if cache, ok := s.idpCache.Load(*find.ID); ok {
return cache.(*storepb.IdentityProvider), nil return cache.(*storepb.IdentityProvider), nil
} }
} }
list, err := s.ListIdentityProvidersV1(ctx, find) list, err := s.ListIdentityProviders(ctx, find)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -97,7 +97,7 @@ type UpdateIdentityProviderV1 struct {
Config *storepb.IdentityProviderConfig Config *storepb.IdentityProviderConfig
} }
func (s *Store) UpdateIdentityProviderV1(ctx context.Context, update *UpdateIdentityProviderV1) (*storepb.IdentityProvider, error) { func (s *Store) UpdateIdentityProvider(ctx context.Context, update *UpdateIdentityProviderV1) (*storepb.IdentityProvider, error) {
updateRaw := &UpdateIdentityProvider{ updateRaw := &UpdateIdentityProvider{
ID: update.ID, ID: update.ID,
} }
@ -123,7 +123,7 @@ func (s *Store) UpdateIdentityProviderV1(ctx context.Context, update *UpdateIden
if err != nil { if err != nil {
return nil, err return nil, err
} }
s.idpV1Cache.Store(identityProvider.Id, identityProvider) s.idpCache.Store(identityProvider.Id, identityProvider)
return identityProvider, nil return identityProvider, nil
} }

View File

@ -1,77 +1 @@
package store package store
import (
"context"
"encoding/json"
"fmt"
"github.com/pkg/errors"
storepb "github.com/usememos/memos/proto/gen/store"
)
// MigrateWorkspaceSetting migrates workspace setting from v1 to v2.
func (s *Store) MigrateWorkspaceSetting(ctx context.Context) error {
workspaceSettings, err := s.ListWorkspaceSettings(ctx, &FindWorkspaceSetting{})
if err != nil {
return errors.Wrap(err, "failed to list workspace settings")
}
workspaceBasicSetting, err := s.GetWorkspaceBasicSetting(ctx)
if err != nil {
return errors.Wrap(err, "failed to get workspace basic setting")
}
workspaceGeneralSetting, err := s.GetWorkspaceGeneralSetting(ctx)
if err != nil {
return errors.Wrap(err, "failed to get workspace general setting")
}
for _, workspaceSetting := range workspaceSettings {
matched := true
var baseValue any
// nolint
json.Unmarshal([]byte(workspaceSetting.Value), &baseValue)
if workspaceSetting.Name == "server-id" {
workspaceBasicSetting.ServerId = workspaceSetting.Value
} else if workspaceSetting.Name == "secret-session" {
workspaceBasicSetting.SecretKey = workspaceSetting.Value
} else if workspaceSetting.Name == "allow-signup" {
workspaceGeneralSetting.DisallowSignup = !baseValue.(bool)
} else if workspaceSetting.Name == "disable-password-login" {
workspaceGeneralSetting.DisallowPasswordLogin = baseValue.(bool)
} else if workspaceSetting.Name == "additional-style" {
workspaceGeneralSetting.AdditionalStyle = baseValue.(string)
} else if workspaceSetting.Name == "additional-script" {
workspaceGeneralSetting.AdditionalScript = baseValue.(string)
} else if workspaceSetting.Name == "instance-url" {
workspaceGeneralSetting.InstanceUrl = workspaceSetting.Value
} else {
matched = false
}
if matched {
if err := s.DeleteWorkspaceSetting(ctx, &DeleteWorkspaceSetting{
Name: workspaceSetting.Name,
}); err != nil {
return errors.Wrap(err, fmt.Sprintf("failed to delete workspace setting: %s", workspaceSetting.Name))
}
}
}
if _, err := s.UpsertWorkspaceSettingV1(ctx, &storepb.WorkspaceSetting{
Key: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_BASIC,
Value: &storepb.WorkspaceSetting_BasicSetting{BasicSetting: workspaceBasicSetting},
}); err != nil {
return errors.Wrap(err, "failed to upsert workspace basic setting")
}
if _, err := s.UpsertWorkspaceSettingV1(ctx, &storepb.WorkspaceSetting{
Key: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_GENERAL,
Value: &storepb.WorkspaceSetting_GeneralSetting{GeneralSetting: workspaceGeneralSetting},
}); err != nil {
return errors.Wrap(err, "failed to upsert workspace general setting")
}
return nil
}

View File

@ -30,35 +30,7 @@ type DeleteStorage struct {
ID int32 ID int32
} }
func (s *Store) CreateStorage(ctx context.Context, create *Storage) (*Storage, error) { func (s *Store) CreateStorage(ctx context.Context, create *storepb.Storage) (*storepb.Storage, error) {
return s.driver.CreateStorage(ctx, create)
}
func (s *Store) ListStorages(ctx context.Context, find *FindStorage) ([]*Storage, error) {
return s.driver.ListStorages(ctx, find)
}
func (s *Store) GetStorage(ctx context.Context, find *FindStorage) (*Storage, error) {
list, err := s.ListStorages(ctx, find)
if err != nil {
return nil, err
}
if len(list) == 0 {
return nil, nil
}
return list[0], nil
}
func (s *Store) UpdateStorage(ctx context.Context, update *UpdateStorage) (*Storage, error) {
return s.driver.UpdateStorage(ctx, update)
}
func (s *Store) DeleteStorage(ctx context.Context, delete *DeleteStorage) error {
return s.driver.DeleteStorage(ctx, delete)
}
func (s *Store) CreateStorageV1(ctx context.Context, create *storepb.Storage) (*storepb.Storage, error) {
storageRaw := &Storage{ storageRaw := &Storage{
Name: create.Name, Name: create.Name,
Type: create.Type.String(), Type: create.Type.String(),
@ -83,7 +55,7 @@ func (s *Store) CreateStorageV1(ctx context.Context, create *storepb.Storage) (*
return storage, nil return storage, nil
} }
func (s *Store) ListStoragesV1(ctx context.Context, find *FindStorage) ([]*storepb.Storage, error) { func (s *Store) ListStorages(ctx context.Context, find *FindStorage) ([]*storepb.Storage, error) {
list, err := s.driver.ListStorages(ctx, find) list, err := s.driver.ListStorages(ctx, find)
if err != nil { if err != nil {
return nil, err return nil, err
@ -100,8 +72,8 @@ func (s *Store) ListStoragesV1(ctx context.Context, find *FindStorage) ([]*store
return storages, nil return storages, nil
} }
func (s *Store) GetStorageV1(ctx context.Context, find *FindStorage) (*storepb.Storage, error) { func (s *Store) GetStorage(ctx context.Context, find *FindStorage) (*storepb.Storage, error) {
list, err := s.ListStoragesV1(ctx, find) list, err := s.ListStorages(ctx, find)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -119,7 +91,7 @@ type UpdateStorageV1 struct {
Config *storepb.StorageConfig Config *storepb.StorageConfig
} }
func (s *Store) UpdateStorageV1(ctx context.Context, update *UpdateStorageV1) (*storepb.Storage, error) { func (s *Store) UpdateStorage(ctx context.Context, update *UpdateStorageV1) (*storepb.Storage, error) {
updateRaw := &UpdateStorage{ updateRaw := &UpdateStorage{
ID: update.ID, ID: update.ID,
} }
@ -144,6 +116,10 @@ func (s *Store) UpdateStorageV1(ctx context.Context, update *UpdateStorageV1) (*
return storage, nil return storage, nil
} }
func (s *Store) DeleteStorage(ctx context.Context, delete *DeleteStorage) error {
return s.driver.DeleteStorage(ctx, delete)
}
func convertStorageFromRaw(storageRaw *Storage) (*storepb.Storage, error) { func convertStorageFromRaw(storageRaw *Storage) (*storepb.Storage, error) {
storage := &storepb.Storage{ storage := &storepb.Storage{
Id: storageRaw.ID, Id: storageRaw.ID,

View File

@ -14,8 +14,7 @@ type Store struct {
workspaceSettingCache sync.Map // map[string]*storepb.WorkspaceSetting workspaceSettingCache sync.Map // map[string]*storepb.WorkspaceSetting
userCache sync.Map // map[int]*User userCache sync.Map // map[int]*User
userSettingCache sync.Map // map[string]*UserSetting userSettingCache sync.Map // map[string]*UserSetting
idpCache sync.Map // map[int]*IdentityProvider idpCache sync.Map // map[int]*storepb.IdentityProvider
idpV1Cache sync.Map // map[int]*storepb.IdentityProvider
} }
// New creates a new instance of Store. // New creates a new instance of Store.
@ -27,9 +26,6 @@ func New(driver Driver, profile *profile.Profile) *Store {
} }
func (s *Store) MigrateManually(ctx context.Context) error { func (s *Store) MigrateManually(ctx context.Context) error {
if err := s.MigrateWorkspaceSetting(ctx); err != nil {
return err
}
return nil return nil
} }

View File

@ -34,7 +34,7 @@ func (s *Store) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetti
if err != nil { if err != nil {
return nil, err return nil, err
} }
s.userSettingCache.Store(getUserSettingV1CacheKey(userSetting.UserId, userSetting.Key.String()), userSetting) s.userSettingCache.Store(getUserSettingCacheKey(userSetting.UserId, userSetting.Key.String()), userSetting)
return userSetting, nil return userSetting, nil
} }
@ -50,7 +50,7 @@ func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSetting) ([]
if err != nil { if err != nil {
return nil, err return nil, err
} }
s.userSettingCache.Store(getUserSettingV1CacheKey(userSetting.UserId, userSetting.Key.String()), userSetting) s.userSettingCache.Store(getUserSettingCacheKey(userSetting.UserId, userSetting.Key.String()), userSetting)
userSettings = append(userSettings, userSetting) userSettings = append(userSettings, userSetting)
} }
return userSettings, nil return userSettings, nil
@ -58,7 +58,7 @@ func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSetting) ([]
func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*storepb.UserSetting, error) { func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*storepb.UserSetting, error) {
if find.UserID != nil { if find.UserID != nil {
if cache, ok := s.userSettingCache.Load(getUserSettingV1CacheKey(*find.UserID, find.Key.String())); ok { if cache, ok := s.userSettingCache.Load(getUserSettingCacheKey(*find.UserID, find.Key.String())); ok {
return cache.(*storepb.UserSetting), nil return cache.(*storepb.UserSetting), nil
} }
} }
@ -75,7 +75,7 @@ func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*sto
} }
userSetting := list[0] userSetting := list[0]
s.userSettingCache.Store(getUserSettingV1CacheKey(userSetting.UserId, userSetting.Key.String()), userSetting) s.userSettingCache.Store(getUserSettingCacheKey(userSetting.UserId, userSetting.Key.String()), userSetting)
return userSetting, nil return userSetting, nil
} }

View File

@ -23,41 +23,7 @@ type DeleteWorkspaceSetting struct {
Name string Name string
} }
func (s *Store) UpsertWorkspaceSetting(ctx context.Context, upsert *WorkspaceSetting) (*WorkspaceSetting, error) { func (s *Store) UpsertWorkspaceSetting(ctx context.Context, upsert *storepb.WorkspaceSetting) (*storepb.WorkspaceSetting, error) {
return s.driver.UpsertWorkspaceSetting(ctx, upsert)
}
func (s *Store) ListWorkspaceSettings(ctx context.Context, find *FindWorkspaceSetting) ([]*WorkspaceSetting, error) {
list, err := s.driver.ListWorkspaceSettings(ctx, find)
if err != nil {
return nil, err
}
return list, nil
}
func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSetting) (*WorkspaceSetting, error) {
list, err := s.ListWorkspaceSettings(ctx, find)
if err != nil {
return nil, err
}
if len(list) == 0 {
return nil, nil
}
systemSettingMessage := list[0]
return systemSettingMessage, nil
}
func (s *Store) DeleteWorkspaceSetting(ctx context.Context, delete *DeleteWorkspaceSetting) error {
err := s.driver.DeleteWorkspaceSetting(ctx, delete)
if err != nil {
return errors.Wrap(err, "Failed to delete workspace setting")
}
return nil
}
func (s *Store) UpsertWorkspaceSettingV1(ctx context.Context, upsert *storepb.WorkspaceSetting) (*storepb.WorkspaceSetting, error) {
workspaceSettingRaw := &WorkspaceSetting{ workspaceSettingRaw := &WorkspaceSetting{
Name: upsert.Key.String(), Name: upsert.Key.String(),
} }
@ -91,7 +57,7 @@ func (s *Store) UpsertWorkspaceSettingV1(ctx context.Context, upsert *storepb.Wo
return workspaceSetting, nil return workspaceSetting, nil
} }
func (s *Store) ListWorkspaceSettingsV1(ctx context.Context, find *FindWorkspaceSetting) ([]*storepb.WorkspaceSetting, error) { func (s *Store) ListWorkspaceSettings(ctx context.Context, find *FindWorkspaceSetting) ([]*storepb.WorkspaceSetting, error) {
list, err := s.driver.ListWorkspaceSettings(ctx, find) list, err := s.driver.ListWorkspaceSettings(ctx, find)
if err != nil { if err != nil {
return nil, err return nil, err
@ -109,12 +75,12 @@ func (s *Store) ListWorkspaceSettingsV1(ctx context.Context, find *FindWorkspace
return workspaceSettings, nil return workspaceSettings, nil
} }
func (s *Store) GetWorkspaceSettingV1(ctx context.Context, find *FindWorkspaceSetting) (*storepb.WorkspaceSetting, error) { func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSetting) (*storepb.WorkspaceSetting, error) {
if cache, ok := s.workspaceSettingCache.Load(find.Name); ok { if cache, ok := s.workspaceSettingCache.Load(find.Name); ok {
return cache.(*storepb.WorkspaceSetting), nil return cache.(*storepb.WorkspaceSetting), nil
} }
list, err := s.ListWorkspaceSettingsV1(ctx, find) list, err := s.ListWorkspaceSettings(ctx, find)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -128,7 +94,7 @@ func (s *Store) GetWorkspaceSettingV1(ctx context.Context, find *FindWorkspaceSe
} }
func (s *Store) GetWorkspaceBasicSetting(ctx context.Context) (*storepb.WorkspaceBasicSetting, error) { func (s *Store) GetWorkspaceBasicSetting(ctx context.Context) (*storepb.WorkspaceBasicSetting, error) {
workspaceSetting, err := s.GetWorkspaceSettingV1(ctx, &FindWorkspaceSetting{ workspaceSetting, err := s.GetWorkspaceSetting(ctx, &FindWorkspaceSetting{
Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_BASIC.String(), Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_BASIC.String(),
}) })
if err != nil { if err != nil {
@ -143,7 +109,7 @@ func (s *Store) GetWorkspaceBasicSetting(ctx context.Context) (*storepb.Workspac
} }
func (s *Store) GetWorkspaceGeneralSetting(ctx context.Context) (*storepb.WorkspaceGeneralSetting, error) { func (s *Store) GetWorkspaceGeneralSetting(ctx context.Context) (*storepb.WorkspaceGeneralSetting, error) {
workspaceSetting, err := s.GetWorkspaceSettingV1(ctx, &FindWorkspaceSetting{ workspaceSetting, err := s.GetWorkspaceSetting(ctx, &FindWorkspaceSetting{
Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_GENERAL.String(), Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_GENERAL.String(),
}) })
if err != nil { if err != nil {
@ -158,7 +124,7 @@ func (s *Store) GetWorkspaceGeneralSetting(ctx context.Context) (*storepb.Worksp
} }
func (s *Store) GetWorkspaceMemoRelatedSetting(ctx context.Context) (*storepb.WorkspaceMemoRelatedSetting, error) { func (s *Store) GetWorkspaceMemoRelatedSetting(ctx context.Context) (*storepb.WorkspaceMemoRelatedSetting, error) {
workspaceSetting, err := s.GetWorkspaceSettingV1(ctx, &FindWorkspaceSetting{ workspaceSetting, err := s.GetWorkspaceSetting(ctx, &FindWorkspaceSetting{
Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_MEMO_RELATED.String(), Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_MEMO_RELATED.String(),
}) })
if err != nil { if err != nil {
@ -179,7 +145,7 @@ const (
) )
func (s *Store) GetWorkspaceStorageSetting(ctx context.Context) (*storepb.WorkspaceStorageSetting, error) { func (s *Store) GetWorkspaceStorageSetting(ctx context.Context) (*storepb.WorkspaceStorageSetting, error) {
workspaceSetting, err := s.GetWorkspaceSettingV1(ctx, &FindWorkspaceSetting{ workspaceSetting, err := s.GetWorkspaceSetting(ctx, &FindWorkspaceSetting{
Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_STORAGE.String(), Name: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_STORAGE.String(),
}) })
if err != nil { if err != nil {

View File

@ -13,7 +13,7 @@ import (
func TestIdentityProviderStore(t *testing.T) { func TestIdentityProviderStore(t *testing.T) {
ctx := context.Background() ctx := context.Background()
ts := NewTestingStore(ctx, t) ts := NewTestingStore(ctx, t)
createdIDP, err := ts.CreateIdentityProviderV1(ctx, &storepb.IdentityProvider{ createdIDP, err := ts.CreateIdentityProvider(ctx, &storepb.IdentityProvider{
Name: "GitHub OAuth", Name: "GitHub OAuth",
Type: storepb.IdentityProvider_OAUTH2, Type: storepb.IdentityProvider_OAUTH2,
IdentifierFilter: "", IdentifierFilter: "",
@ -36,14 +36,14 @@ func TestIdentityProviderStore(t *testing.T) {
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
idp, err := ts.GetIdentityProviderV1(ctx, &store.FindIdentityProvider{ idp, err := ts.GetIdentityProvider(ctx, &store.FindIdentityProvider{
ID: &createdIDP.Id, ID: &createdIDP.Id,
}) })
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, idp) require.NotNil(t, idp)
require.Equal(t, createdIDP, idp) require.Equal(t, createdIDP, idp)
newName := "My GitHub OAuth" newName := "My GitHub OAuth"
updatedIdp, err := ts.UpdateIdentityProviderV1(ctx, &store.UpdateIdentityProviderV1{ updatedIdp, err := ts.UpdateIdentityProvider(ctx, &store.UpdateIdentityProviderV1{
ID: idp.Id, ID: idp.Id,
Name: &newName, Name: &newName,
}) })
@ -53,7 +53,7 @@ func TestIdentityProviderStore(t *testing.T) {
ID: idp.Id, ID: idp.Id,
}) })
require.NoError(t, err) require.NoError(t, err)
idpList, err := ts.ListIdentityProvidersV1(ctx, &store.FindIdentityProvider{}) idpList, err := ts.ListIdentityProviders(ctx, &store.FindIdentityProvider{})
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, 0, len(idpList)) require.Equal(t, 0, len(idpList))
ts.Close() ts.Close()

View File

@ -6,21 +6,29 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
storepb "github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/store" "github.com/usememos/memos/store"
) )
func TestStorageStore(t *testing.T) { func TestStorageStore(t *testing.T) {
ctx := context.Background() ctx := context.Background()
ts := NewTestingStore(ctx, t) ts := NewTestingStore(ctx, t)
storage, err := ts.CreateStorage(ctx, &store.Storage{ storage, err := ts.CreateStorage(ctx, &storepb.Storage{
Name: "test_storage", Name: "test_storage",
Type: "S3", Type: storepb.Storage_S3,
Config: "{}", Config: &storepb.StorageConfig{
StorageConfig: &storepb.StorageConfig_S3Config{
S3Config: &storepb.S3Config{
EndPoint: "http://localhost:9000",
},
},
},
}) })
require.NoError(t, err) require.NoError(t, err)
newStorageName := "new_storage_name" newStorageName := "new_storage_name"
updatedStorage, err := ts.UpdateStorage(ctx, &store.UpdateStorage{ updatedStorage, err := ts.UpdateStorage(ctx, &store.UpdateStorageV1{
ID: storage.ID, ID: storage.Id,
Type: storage.Type,
Name: &newStorageName, Name: &newStorageName,
}) })
require.NoError(t, err) require.NoError(t, err)
@ -30,7 +38,7 @@ func TestStorageStore(t *testing.T) {
require.Equal(t, 1, len(storageList)) require.Equal(t, 1, len(storageList))
require.Equal(t, updatedStorage, storageList[0]) require.Equal(t, updatedStorage, storageList[0])
err = ts.DeleteStorage(ctx, &store.DeleteStorage{ err = ts.DeleteStorage(ctx, &store.DeleteStorage{
ID: storage.ID, ID: storage.Id,
}) })
require.NoError(t, err) require.NoError(t, err)
storageList, err = ts.ListStorages(ctx, &store.FindStorage{}) storageList, err = ts.ListStorages(ctx, &store.FindStorage{})

View File

@ -13,7 +13,7 @@ import (
func TestWorkspaceSettingV1Store(t *testing.T) { func TestWorkspaceSettingV1Store(t *testing.T) {
ctx := context.Background() ctx := context.Background()
ts := NewTestingStore(ctx, t) ts := NewTestingStore(ctx, t)
workspaceSetting, err := ts.UpsertWorkspaceSettingV1(ctx, &storepb.WorkspaceSetting{ workspaceSetting, err := ts.UpsertWorkspaceSetting(ctx, &storepb.WorkspaceSetting{
Key: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_GENERAL, Key: storepb.WorkspaceSettingKey_WORKSPACE_SETTING_GENERAL,
Value: &storepb.WorkspaceSetting_GeneralSetting{ Value: &storepb.WorkspaceSetting_GeneralSetting{
GeneralSetting: &storepb.WorkspaceGeneralSetting{ GeneralSetting: &storepb.WorkspaceGeneralSetting{
@ -22,7 +22,7 @@ func TestWorkspaceSettingV1Store(t *testing.T) {
}, },
}) })
require.NoError(t, err) require.NoError(t, err)
list, err := ts.ListWorkspaceSettingsV1(ctx, &store.FindWorkspaceSetting{}) list, err := ts.ListWorkspaceSettings(ctx, &store.FindWorkspaceSetting{})
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, 1, len(list)) require.Equal(t, 1, len(list))
require.Equal(t, workspaceSetting, list[0]) require.Equal(t, workspaceSetting, list[0])