chore: migrate user setting to api v1 package (#1855)

* chore: migrate to api v1 package

* chore: update
This commit is contained in:
boojack
2023-06-26 23:06:53 +08:00
committed by GitHub
parent 07e82c3f4a
commit b44f2b5ffb
20 changed files with 764 additions and 173 deletions

View File

@@ -8,7 +8,7 @@ import (
"github.com/golang-jwt/jwt/v4"
"github.com/labstack/echo/v4"
"github.com/pkg/errors"
"github.com/usememos/memos/api"
"github.com/usememos/memos/store"
)
const (
@@ -64,7 +64,7 @@ func GenerateRefreshToken(userName string, userID int, secret string) (string, e
}
// GenerateTokensAndSetCookies generates jwt token and saves it to the http-only cookie.
func GenerateTokensAndSetCookies(c echo.Context, user *api.User, secret string) error {
func GenerateTokensAndSetCookies(c echo.Context, user *store.UserMessage, secret string) error {
accessToken, err := GenerateAccessToken(user.Username, user.ID, secret)
if err != nil {
return errors.Wrap(err, "failed to generate access token")

View File

@@ -10,9 +10,9 @@ import (
"github.com/golang-jwt/jwt/v4"
"github.com/labstack/echo/v4"
"github.com/pkg/errors"
"github.com/usememos/memos/api"
"github.com/usememos/memos/common"
"github.com/usememos/memos/server/auth"
"github.com/usememos/memos/store"
)
const (
@@ -136,7 +136,7 @@ func JWTMiddleware(server *Server, next echo.HandlerFunc, secret string) echo.Ha
}
// Even if there is no error, we still need to make sure the user still exists.
user, err := server.Store.FindUser(ctx, &api.UserFind{
user, err := server.Store.GetUser(ctx, &store.FindUserMessage{
ID: &userID,
})
if err != nil {

View File

@@ -11,6 +11,7 @@ import (
"github.com/pkg/errors"
"github.com/usememos/memos/api"
apiv1 "github.com/usememos/memos/api/v1"
"github.com/usememos/memos/common"
"github.com/usememos/memos/store"
@@ -37,9 +38,9 @@ func (s *Server) registerMemoRoutes(g *echo.Group) {
}
if createMemoRequest.Visibility == "" {
userMemoVisibilitySetting, err := s.Store.FindUserSetting(ctx, &api.UserSettingFind{
userMemoVisibilitySetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSettingMessage{
UserID: &userID,
Key: api.UserSettingMemoVisibilityKey,
Key: apiv1.UserSettingMemoVisibilityKey.String(),
})
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user setting").SetInternal(err)

View File

@@ -7,7 +7,9 @@ import (
"path"
"strconv"
"github.com/pkg/errors"
"github.com/usememos/memos/api"
apiv1 "github.com/usememos/memos/api/v1"
"github.com/usememos/memos/common"
"github.com/usememos/memos/plugin/telegram"
"github.com/usememos/memos/store"
@@ -37,14 +39,13 @@ func (t *telegramHandler) MessageHandle(ctx context.Context, bot *telegram.Bot,
}
var creatorID int
userSettingList, err := t.store.FindUserSettingList(ctx, &api.UserSettingFind{
Key: api.UserSettingTelegramUserIDKey,
userSettingMessageList, err := t.store.ListUserSettings(ctx, &store.FindUserSettingMessage{
Key: apiv1.UserSettingTelegramUserIDKey.String(),
})
if err != nil {
_, err := bot.EditMessage(ctx, message.Chat.ID, reply.MessageID, fmt.Sprintf("Fail to find memo user: %s", err), nil)
return err
return errors.Wrap(err, "Failed to find userSettingList")
}
for _, userSetting := range userSettingList {
for _, userSetting := range userSettingMessageList {
var value string
if err := json.Unmarshal([]byte(userSetting.Value), &value); err != nil {
continue

View File

@@ -9,7 +9,9 @@ import (
"github.com/pkg/errors"
"github.com/usememos/memos/api"
apiv1 "github.com/usememos/memos/api/v1"
"github.com/usememos/memos/common"
"github.com/usememos/memos/store"
"github.com/labstack/echo/v4"
"golang.org/x/crypto/bcrypt"
@@ -83,7 +85,7 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return echo.NewHTTPError(http.StatusUnauthorized, "Missing auth session")
}
userSettingUpsert := &api.UserSettingUpsert{}
userSettingUpsert := &apiv1.UserSettingUpsert{}
if err := json.NewDecoder(c.Request().Body).Decode(userSettingUpsert); err != nil {
return echo.NewHTTPError(http.StatusBadRequest, "Malformatted post user setting upsert request").SetInternal(err)
}
@@ -92,10 +94,15 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
}
userSettingUpsert.UserID = userID
userSetting, err := s.Store.UpsertUserSetting(ctx, userSettingUpsert)
userSettingMessage, err := s.Store.UpsertUserSettingV1(ctx, &store.UserSettingMessage{
UserID: userID,
Key: userSettingUpsert.Key.String(),
Value: userSettingUpsert.Value,
})
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to upsert user setting").SetInternal(err)
}
userSetting := convertUserSettingFromStore(userSettingMessage)
return c.JSON(http.StatusOK, composeResponse(userSetting))
})
@@ -115,12 +122,21 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find user").SetInternal(err)
}
userSettingList, err := s.Store.FindUserSettingList(ctx, &api.UserSettingFind{
userSettingMessageList, err := s.Store.ListUserSettings(ctx, &store.FindUserSettingMessage{
UserID: &userID,
})
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find userSettingList").SetInternal(err)
}
userSettingList := []*api.UserSetting{}
for _, userSettingMessage := range userSettingMessageList {
userSettingV1 := convertUserSettingFromStore(userSettingMessage)
userSettingList = append(userSettingList, &api.UserSetting{
UserID: userSettingV1.UserID,
Key: api.UserSettingKey(userSettingV1.Key),
Value: userSettingV1.Value,
})
}
user.UserSettingList = userSettingList
return c.JSON(http.StatusOK, composeResponse(user))
})
@@ -202,12 +218,21 @@ func (s *Server) registerUserRoutes(g *echo.Group) {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to patch user").SetInternal(err)
}
userSettingList, err := s.Store.FindUserSettingList(ctx, &api.UserSettingFind{
userSettingMessageList, err := s.Store.ListUserSettings(ctx, &store.FindUserSettingMessage{
UserID: &userID,
})
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to find userSettingList").SetInternal(err)
}
userSettingList := []*api.UserSetting{}
for _, userSettingMessage := range userSettingMessageList {
userSettingV1 := convertUserSettingFromStore(userSettingMessage)
userSettingList = append(userSettingList, &api.UserSetting{
UserID: userSettingV1.UserID,
Key: api.UserSettingKey(userSettingV1.Key),
Value: userSettingV1.Value,
})
}
user.UserSettingList = userSettingList
return c.JSON(http.StatusOK, composeResponse(user))
})
@@ -271,3 +296,11 @@ func (s *Server) createUserCreateActivity(c echo.Context, user *api.User) error
}
return err
}
func convertUserSettingFromStore(userSetting *store.UserSettingMessage) *apiv1.UserSetting {
return &apiv1.UserSetting{
UserID: userSetting.UserID,
Key: apiv1.UserSettingKey(userSetting.Key),
Value: userSetting.Value,
}
}