mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: update store types name (#1862)
This commit is contained in:
@ -179,7 +179,7 @@ func (s *APIV1Service) registerAuthRoutes(g *echo.Group, secret string) {
|
|||||||
// Change the default role to host if there is no host user.
|
// Change the default role to host if there is no host user.
|
||||||
userCreate.Role = store.Host
|
userCreate.Role = store.Host
|
||||||
} else {
|
} else {
|
||||||
allowSignUpSetting, err := s.Store.GetSystemSetting(ctx, &store.FindSystemSettingMessage{
|
allowSignUpSetting, err := s.Store.GetSystemSetting(ctx, &store.FindSystemSetting{
|
||||||
Name: SystemSettingAllowSignUpName.String(),
|
Name: SystemSettingAllowSignUpName.String(),
|
||||||
})
|
})
|
||||||
if err != nil && common.ErrorCode(err) != common.NotFound {
|
if err != nil && common.ErrorCode(err) != common.NotFound {
|
||||||
|
@ -38,7 +38,7 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if createMemoRequest.Visibility == "" {
|
if createMemoRequest.Visibility == "" {
|
||||||
userMemoVisibilitySetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSettingMessage{
|
userMemoVisibilitySetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: apiv1.UserSettingMemoVisibilityKey.String(),
|
Key: apiv1.UserSettingMemoVisibilityKey.String(),
|
||||||
})
|
})
|
||||||
|
@ -39,13 +39,13 @@ func (t *telegramHandler) MessageHandle(ctx context.Context, bot *telegram.Bot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
var creatorID int
|
var creatorID int
|
||||||
userSettingMessageList, err := t.store.ListUserSettings(ctx, &store.FindUserSettingMessage{
|
userSettingList, err := t.store.ListUserSettings(ctx, &store.FindUserSetting{
|
||||||
Key: apiv1.UserSettingTelegramUserIDKey.String(),
|
Key: apiv1.UserSettingTelegramUserIDKey.String(),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "Failed to find userSettingList")
|
return errors.Wrap(err, "Failed to find userSettingList")
|
||||||
}
|
}
|
||||||
for _, userSetting := range userSettingMessageList {
|
for _, userSetting := range userSettingList {
|
||||||
var value string
|
var value string
|
||||||
if err := json.Unmarshal([]byte(userSetting.Value), &value); err != nil {
|
if err := json.Unmarshal([]byte(userSetting.Value), &value); err != nil {
|
||||||
continue
|
continue
|
||||||
|
@ -94,7 +94,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
userSettingUpsert.UserID = userID
|
userSettingUpsert.UserID = userID
|
||||||
userSettingMessage, err := s.Store.UpsertUserSettingV1(ctx, &store.UserSettingMessage{
|
userSetting, err := s.Store.UpsertUserSetting(ctx, &store.UserSetting{
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
Key: userSettingUpsert.Key.String(),
|
Key: userSettingUpsert.Key.String(),
|
||||||
Value: userSettingUpsert.Value,
|
Value: userSettingUpsert.Value,
|
||||||
@ -102,8 +102,8 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert user setting").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert user setting").SetInternal(err)
|
||||||
}
|
}
|
||||||
userSetting := convertUserSettingFromStore(userSettingMessage)
|
userSettingMessage := convertUserSettingFromStore(userSetting)
|
||||||
return c.JSON(http.StatusOK, composeResponse(userSetting))
|
return c.JSON(http.StatusOK, composeResponse(userSettingMessage))
|
||||||
})
|
})
|
||||||
|
|
||||||
// GET /api/user/me is used to check if the user is logged in.
|
// GET /api/user/me is used to check if the user is logged in.
|
||||||
@ -122,19 +122,19 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
|
|||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user").SetInternal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
userSettingMessageList, err := s.Store.ListUserSettings(ctx, &store.FindUserSettingMessage{
|
list, err := s.Store.ListUserSettings(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find userSettingList").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find userSettingList").SetInternal(err)
|
||||||
}
|
}
|
||||||
userSettingList := []*api.UserSetting{}
|
userSettingList := []*api.UserSetting{}
|
||||||
for _, userSettingMessage := range userSettingMessageList {
|
for _, item := range list {
|
||||||
userSettingV1 := convertUserSettingFromStore(userSettingMessage)
|
userSetting := convertUserSettingFromStore(item)
|
||||||
userSettingList = append(userSettingList, &api.UserSetting{
|
userSettingList = append(userSettingList, &api.UserSetting{
|
||||||
UserID: userSettingV1.UserID,
|
UserID: userSetting.UserID,
|
||||||
Key: api.UserSettingKey(userSettingV1.Key),
|
Key: api.UserSettingKey(userSetting.Key),
|
||||||
Value: userSettingV1.Value,
|
Value: userSetting.Value,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
user.UserSettingList = userSettingList
|
user.UserSettingList = userSettingList
|
||||||
@ -218,19 +218,19 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
|
|||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to patch user").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to patch user").SetInternal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
userSettingMessageList, err := s.Store.ListUserSettings(ctx, &store.FindUserSettingMessage{
|
list, err := s.Store.ListUserSettings(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find userSettingList").SetInternal(err)
|
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find userSettingList").SetInternal(err)
|
||||||
}
|
}
|
||||||
userSettingList := []*api.UserSetting{}
|
userSettingList := []*api.UserSetting{}
|
||||||
for _, userSettingMessage := range userSettingMessageList {
|
for _, item := range list {
|
||||||
userSettingV1 := convertUserSettingFromStore(userSettingMessage)
|
userSetting := convertUserSettingFromStore(item)
|
||||||
userSettingList = append(userSettingList, &api.UserSetting{
|
userSettingList = append(userSettingList, &api.UserSetting{
|
||||||
UserID: userSettingV1.UserID,
|
UserID: userSetting.UserID,
|
||||||
Key: api.UserSettingKey(userSettingV1.Key),
|
Key: api.UserSettingKey(userSetting.Key),
|
||||||
Value: userSettingV1.Value,
|
Value: userSetting.Value,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
user.UserSettingList = userSettingList
|
user.UserSettingList = userSettingList
|
||||||
@ -297,7 +297,7 @@ func (s *Server) createUserCreateActivity(c echo.Context, user *api.User) error
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertUserSettingFromStore(userSetting *store.UserSettingMessage) *apiv1.UserSetting {
|
func convertUserSettingFromStore(userSetting *store.UserSetting) *apiv1.UserSetting {
|
||||||
return &apiv1.UserSetting{
|
return &apiv1.UserSetting{
|
||||||
UserID: userSetting.UserID,
|
UserID: userSetting.UserID,
|
||||||
Key: apiv1.UserSettingKey(userSetting.Key),
|
Key: apiv1.UserSettingKey(userSetting.Key),
|
||||||
|
@ -14,7 +14,7 @@ type Store struct {
|
|||||||
db *sql.DB
|
db *sql.DB
|
||||||
systemSettingCache sync.Map // map[string]*systemSettingRaw
|
systemSettingCache sync.Map // map[string]*systemSettingRaw
|
||||||
userCache sync.Map // map[int]*userRaw
|
userCache sync.Map // map[int]*userRaw
|
||||||
userSettingCache sync.Map // map[string]*UserSettingMessage
|
userSettingCache sync.Map // map[string]*UserSetting
|
||||||
shortcutCache sync.Map // map[int]*shortcutRaw
|
shortcutCache sync.Map // map[int]*shortcutRaw
|
||||||
idpCache sync.Map // map[int]*IdentityProvider
|
idpCache sync.Map // map[int]*IdentityProvider
|
||||||
resourceCache sync.Map // map[int]*resourceRaw
|
resourceCache sync.Map // map[int]*resourceRaw
|
||||||
|
@ -10,17 +10,17 @@ import (
|
|||||||
"github.com/usememos/memos/common"
|
"github.com/usememos/memos/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SystemSettingMessage struct {
|
type SystemSetting struct {
|
||||||
Name string
|
Name string
|
||||||
Value string
|
Value string
|
||||||
Description string
|
Description string
|
||||||
}
|
}
|
||||||
|
|
||||||
type FindSystemSettingMessage struct {
|
type FindSystemSetting struct {
|
||||||
Name string
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) ListSystemSettings(ctx context.Context, find *FindSystemSettingMessage) ([]*SystemSettingMessage, error) {
|
func (s *Store) ListSystemSettings(ctx context.Context, find *FindSystemSetting) ([]*SystemSetting, error) {
|
||||||
tx, err := s.db.BeginTx(ctx, nil)
|
tx, err := s.db.BeginTx(ctx, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, FormatError(err)
|
return nil, FormatError(err)
|
||||||
@ -38,10 +38,10 @@ func (s *Store) ListSystemSettings(ctx context.Context, find *FindSystemSettingM
|
|||||||
return list, nil
|
return list, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) GetSystemSetting(ctx context.Context, find *FindSystemSettingMessage) (*SystemSettingMessage, error) {
|
func (s *Store) GetSystemSetting(ctx context.Context, find *FindSystemSetting) (*SystemSetting, error) {
|
||||||
if find.Name != "" {
|
if find.Name != "" {
|
||||||
if cache, ok := s.systemSettingCache.Load(find.Name); ok {
|
if cache, ok := s.systemSettingCache.Load(find.Name); ok {
|
||||||
return cache.(*SystemSettingMessage), nil
|
return cache.(*SystemSetting), nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ func (s *Store) GetSystemSetting(ctx context.Context, find *FindSystemSettingMes
|
|||||||
return systemSettingMessage, nil
|
return systemSettingMessage, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func listSystemSettings(ctx context.Context, tx *sql.Tx, find *FindSystemSettingMessage) ([]*SystemSettingMessage, error) {
|
func listSystemSettings(ctx context.Context, tx *sql.Tx, find *FindSystemSetting) ([]*SystemSetting, error) {
|
||||||
where, args := []string{"1 = 1"}, []any{}
|
where, args := []string{"1 = 1"}, []any{}
|
||||||
if find.Name != "" {
|
if find.Name != "" {
|
||||||
where, args = append(where, "name = ?"), append(args, find.Name)
|
where, args = append(where, "name = ?"), append(args, find.Name)
|
||||||
@ -85,9 +85,9 @@ func listSystemSettings(ctx context.Context, tx *sql.Tx, find *FindSystemSetting
|
|||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
||||||
list := []*SystemSettingMessage{}
|
list := []*SystemSetting{}
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
systemSettingMessage := &SystemSettingMessage{}
|
systemSettingMessage := &SystemSetting{}
|
||||||
if err := rows.Scan(
|
if err := rows.Scan(
|
||||||
&systemSettingMessage.Name,
|
&systemSettingMessage.Name,
|
||||||
&systemSettingMessage.Value,
|
&systemSettingMessage.Value,
|
||||||
|
@ -6,18 +6,18 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserSettingMessage struct {
|
type UserSetting struct {
|
||||||
UserID int
|
UserID int
|
||||||
Key string
|
Key string
|
||||||
Value string
|
Value string
|
||||||
}
|
}
|
||||||
|
|
||||||
type FindUserSettingMessage struct {
|
type FindUserSetting struct {
|
||||||
UserID *int
|
UserID *int
|
||||||
Key string
|
Key string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) UpsertUserSettingV1(ctx context.Context, upsert *UserSettingMessage) (*UserSettingMessage, error) {
|
func (s *Store) UpsertUserSetting(ctx context.Context, upsert *UserSetting) (*UserSetting, error) {
|
||||||
tx, err := s.db.BeginTx(ctx, nil)
|
tx, err := s.db.BeginTx(ctx, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, FormatError(err)
|
return nil, FormatError(err)
|
||||||
@ -40,12 +40,12 @@ func (s *Store) UpsertUserSettingV1(ctx context.Context, upsert *UserSettingMess
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
userSettingMessage := upsert
|
userSetting := upsert
|
||||||
s.userSettingCache.Store(getUserSettingCacheKeyV1(userSettingMessage.UserID, userSettingMessage.Key), userSettingMessage)
|
s.userSettingCache.Store(getUserSettingCacheKeyV1(userSetting.UserID, userSetting.Key), userSetting)
|
||||||
return userSettingMessage, nil
|
return userSetting, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSettingMessage) ([]*UserSettingMessage, error) {
|
func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSetting) ([]*UserSetting, error) {
|
||||||
tx, err := s.db.BeginTx(ctx, nil)
|
tx, err := s.db.BeginTx(ctx, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, FormatError(err)
|
return nil, FormatError(err)
|
||||||
@ -63,10 +63,10 @@ func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSettingMessa
|
|||||||
return userSettingList, nil
|
return userSettingList, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSettingMessage) (*UserSettingMessage, error) {
|
func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*UserSetting, error) {
|
||||||
if find.UserID != nil {
|
if find.UserID != nil {
|
||||||
if cache, ok := s.userSettingCache.Load(getUserSettingCacheKeyV1(*find.UserID, find.Key)); ok {
|
if cache, ok := s.userSettingCache.Load(getUserSettingCacheKeyV1(*find.UserID, find.Key)); ok {
|
||||||
return cache.(*UserSettingMessage), nil
|
return cache.(*UserSetting), nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,12 +84,12 @@ func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSettingMessage
|
|||||||
if len(list) == 0 {
|
if len(list) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
userSettingMessage := list[0]
|
userSetting := list[0]
|
||||||
s.userSettingCache.Store(getUserSettingCacheKeyV1(userSettingMessage.UserID, userSettingMessage.Key), userSettingMessage)
|
s.userSettingCache.Store(getUserSettingCacheKeyV1(userSetting.UserID, userSetting.Key), userSetting)
|
||||||
return userSettingMessage, nil
|
return userSetting, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func listUserSettings(ctx context.Context, tx *sql.Tx, find *FindUserSettingMessage) ([]*UserSettingMessage, error) {
|
func listUserSettings(ctx context.Context, tx *sql.Tx, find *FindUserSetting) ([]*UserSetting, error) {
|
||||||
where, args := []string{"1 = 1"}, []any{}
|
where, args := []string{"1 = 1"}, []any{}
|
||||||
|
|
||||||
if v := find.Key; v != "" {
|
if v := find.Key; v != "" {
|
||||||
@ -112,24 +112,24 @@ func listUserSettings(ctx context.Context, tx *sql.Tx, find *FindUserSettingMess
|
|||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
||||||
userSettingMessageList := make([]*UserSettingMessage, 0)
|
userSettingList := make([]*UserSetting, 0)
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var userSettingMessage UserSettingMessage
|
var userSetting UserSetting
|
||||||
if err := rows.Scan(
|
if err := rows.Scan(
|
||||||
&userSettingMessage.UserID,
|
&userSetting.UserID,
|
||||||
&userSettingMessage.Key,
|
&userSetting.Key,
|
||||||
&userSettingMessage.Value,
|
&userSetting.Value,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, FormatError(err)
|
return nil, FormatError(err)
|
||||||
}
|
}
|
||||||
userSettingMessageList = append(userSettingMessageList, &userSettingMessage)
|
userSettingList = append(userSettingList, &userSetting)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := rows.Err(); err != nil {
|
if err := rows.Err(); err != nil {
|
||||||
return nil, FormatError(err)
|
return nil, FormatError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return userSettingMessageList, nil
|
return userSettingList, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func vacuumUserSetting(ctx context.Context, tx *sql.Tx) error {
|
func vacuumUserSetting(ctx context.Context, tx *sql.Tx) error {
|
||||||
|
@ -7,29 +7,33 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/usememos/memos/api"
|
"github.com/usememos/memos/api"
|
||||||
|
"github.com/usememos/memos/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSystemSettingStore(t *testing.T) {
|
func TestSystemSettingStore(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
store := NewTestingStore(ctx, t)
|
ts := NewTestingStore(ctx, t)
|
||||||
_, err := store.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
_, err := ts.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
||||||
Name: api.SystemSettingServerIDName,
|
Name: api.SystemSettingServerIDName,
|
||||||
Value: "test_server_id",
|
Value: "test_server_id",
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = store.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
_, err = ts.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
||||||
Name: api.SystemSettingSecretSessionName,
|
Name: api.SystemSettingSecretSessionName,
|
||||||
Value: "test_secret_session_name",
|
Value: "test_secret_session_name",
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = store.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
_, err = ts.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
||||||
Name: api.SystemSettingAllowSignUpName,
|
Name: api.SystemSettingAllowSignUpName,
|
||||||
Value: "true",
|
Value: "true",
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = store.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
_, err = ts.UpsertSystemSetting(ctx, &api.SystemSettingUpsert{
|
||||||
Name: api.SystemSettingLocalStoragePathName,
|
Name: api.SystemSettingLocalStoragePathName,
|
||||||
Value: "/tmp/memos",
|
Value: "/tmp/memos",
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
list, err := ts.ListSystemSettings(ctx, &store.FindSystemSetting{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, 4, len(list))
|
||||||
}
|
}
|
||||||
|
27
test/store/user_setting_test.go
Normal file
27
test/store/user_setting_test.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package teststore
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"github.com/usememos/memos/store"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestUserSettingStore(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
ts := NewTestingStore(ctx, t)
|
||||||
|
user, err := createTestingHostUser(ctx, ts)
|
||||||
|
require.NoError(t, err)
|
||||||
|
_, err = ts.UpsertUserSetting(ctx, &store.UserSetting{
|
||||||
|
UserID: user.ID,
|
||||||
|
Key: "test_key",
|
||||||
|
Value: "test_value",
|
||||||
|
})
|
||||||
|
require.NoError(t, err)
|
||||||
|
list, err := ts.ListUserSettings(ctx, &store.FindUserSetting{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, 1, len(list))
|
||||||
|
require.Equal(t, "test_key", list[0].Key)
|
||||||
|
require.Equal(t, "test_value", list[0].Value)
|
||||||
|
}
|
Reference in New Issue
Block a user