refactor: update user setting keys

This commit is contained in:
Steven
2024-07-24 00:04:10 +08:00
parent 87deeca110
commit 8010f54747
18 changed files with 519 additions and 377 deletions

View File

@ -163,7 +163,7 @@ func audienceContains(audience jwt.ClaimStrings, token string) bool {
return false
}
func validateAccessToken(accessTokenString string, userAccessTokens []*storepb.AccessTokensUserSetting_AccessToken) bool {
func validateAccessToken(accessTokenString string, userAccessTokens []*storepb.UserSettingAccessTokens_AccessToken) bool {
for _, userAccessToken := range userAccessTokens {
if accessTokenString == userAccessToken.AccessToken {
return true

View File

@ -251,7 +251,7 @@ func (s *APIV1Service) DeleteUserAccessToken(ctx context.Context, request *v1pb.
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to list access tokens: %v", err)
}
updatedUserAccessTokens := []*storepb.AccessTokensUserSetting_AccessToken{}
updatedUserAccessTokens := []*storepb.UserSettingAccessTokens_AccessToken{}
for _, userAccessToken := range userAccessTokens {
if userAccessToken.AccessToken == request.AccessToken {
continue
@ -262,7 +262,7 @@ func (s *APIV1Service) DeleteUserAccessToken(ctx context.Context, request *v1pb.
UserId: user.ID,
Key: storepb.UserSettingKey_ACCESS_TOKENS,
Value: &storepb.UserSetting_AccessTokens{
AccessTokens: &storepb.AccessTokensUserSetting{
AccessTokens: &storepb.UserSettingAccessTokens{
AccessTokens: updatedUserAccessTokens,
},
},
@ -278,7 +278,7 @@ func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store
if err != nil {
return errors.Wrap(err, "failed to get user access tokens")
}
userAccessToken := storepb.AccessTokensUserSetting_AccessToken{
userAccessToken := storepb.UserSettingAccessTokens_AccessToken{
AccessToken: accessToken,
Description: description,
}
@ -287,7 +287,7 @@ func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store
UserId: user.ID,
Key: storepb.UserSettingKey_ACCESS_TOKENS,
Value: &storepb.UserSetting_AccessTokens{
AccessTokens: &storepb.AccessTokensUserSetting{
AccessTokens: &storepb.UserSettingAccessTokens{
AccessTokens: userAccessTokens,
},
},

View File

@ -32,22 +32,15 @@ func (s *APIV1Service) UpdateUserSetting(ctx context.Context, request *v1pb.Upda
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
}
for _, path := range request.UpdateMask.Paths {
if path == "locale" {
if path == "general" {
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
UserId: user.ID,
Key: storepb.UserSettingKey_LOCALE,
Value: &storepb.UserSetting_Locale{
Locale: request.UserSetting.Locale,
},
}); err != nil {
return nil, status.Errorf(codes.Internal, "failed to update user setting: %v", err)
}
} else if path == "color_theme" {
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
UserId: user.ID,
Key: storepb.UserSettingKey_COLOR_THEME,
Value: &storepb.UserSetting_ColorTheme{
ColorTheme: request.UserSetting.ColorTheme,
Key: storepb.UserSettingKey_GENERAL,
Value: &storepb.UserSetting_General{
General: &storepb.UserSettingGeneral{
Locale: request.UserSetting.General.Locale,
ColorTheme: request.UserSetting.General.ColorTheme,
},
},
}); err != nil {
return nil, status.Errorf(codes.Internal, "failed to update user setting: %v", err)
@ -75,15 +68,18 @@ func getUserSetting(ctx context.Context, s *store.Store, userID int32) (*v1pb.Us
}
userSetting := &v1pb.UserSetting{
Id: userID,
Locale: "EN",
ColorTheme: "SYSTEM",
Id: userID,
General: &v1pb.UserSettingGeneral{
Locale: "EN",
ColorTheme: "SYSTEM",
},
}
for _, setting := range userSettings {
if setting.Key == storepb.UserSettingKey_LOCALE {
userSetting.Locale = setting.GetLocale()
} else if setting.Key == storepb.UserSettingKey_COLOR_THEME {
userSetting.ColorTheme = setting.GetColorTheme()
if setting.Key == storepb.UserSettingKey_GENERAL {
userSetting.General = &v1pb.UserSettingGeneral{
Locale: setting.GetGeneral().Locale,
ColorTheme: setting.GetGeneral().ColorTheme,
}
}
}
return userSetting, nil