chore: support fr locale

This commit is contained in:
Steven
2024-05-21 21:57:03 +08:00
parent 4444c72042
commit 6746b9dc58
17 changed files with 216 additions and 197 deletions

View File

@ -23,15 +23,15 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
`
var valueString string
if upsert.Key == storepb.UserSettingKey_USER_SETTING_ACCESS_TOKENS {
if upsert.Key == storepb.UserSettingKey_ACCESS_TOKENS {
valueBytes, err := protojson.Marshal(upsert.GetAccessTokens())
if err != nil {
return nil, err
}
valueString = string(valueBytes)
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_LOCALE {
} else if upsert.Key == storepb.UserSettingKey_LOCALE {
valueString = upsert.GetLocale().String()
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_COLOR_THEME {
} else if upsert.Key == storepb.UserSettingKey_COLOR_THEME {
valueString = upsert.GetColorTheme().String()
} else {
return nil, errors.New("invalid user setting key")
@ -80,7 +80,7 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
return nil, err
}
userSetting.Key = storepb.UserSettingKey(storepb.UserSettingKey_value[keyString])
if userSetting.Key == storepb.UserSettingKey_USER_SETTING_ACCESS_TOKENS {
if userSetting.Key == storepb.UserSettingKey_ACCESS_TOKENS {
accessTokensUserSetting := &storepb.AccessTokensUserSetting{}
if err := protojson.Unmarshal([]byte(valueString), accessTokensUserSetting); err != nil {
return nil, err
@ -88,16 +88,17 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
userSetting.Value = &storepb.UserSetting_AccessTokens{
AccessTokens: accessTokensUserSetting,
}
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_LOCALE {
} else if userSetting.Key == storepb.UserSettingKey_LOCALE {
userSetting.Value = &storepb.UserSetting_Locale{
Locale: storepb.LocaleUserSetting(storepb.LocaleUserSetting_value[valueString]),
}
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_COLOR_THEME {
} else if userSetting.Key == storepb.UserSettingKey_COLOR_THEME {
userSetting.Value = &storepb.UserSetting_ColorTheme{
ColorTheme: storepb.ColorThemeUserSetting(storepb.ColorThemeUserSetting_value[valueString]),
}
} else {
return nil, errors.New("invalid user setting key")
// Skip unknown key.
continue
}
userSettingList = append(userSettingList, userSetting)
}

View File

@ -22,15 +22,15 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
SET value = EXCLUDED.value
`
var valueString string
if upsert.Key == storepb.UserSettingKey_USER_SETTING_ACCESS_TOKENS {
if upsert.Key == storepb.UserSettingKey_ACCESS_TOKENS {
valueBytes, err := protojson.Marshal(upsert.GetAccessTokens())
if err != nil {
return nil, err
}
valueString = string(valueBytes)
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_LOCALE {
} else if upsert.Key == storepb.UserSettingKey_LOCALE {
valueString = upsert.GetLocale().String()
} else if upsert.Key == storepb.UserSettingKey_USER_SETTING_COLOR_THEME {
} else if upsert.Key == storepb.UserSettingKey_COLOR_THEME {
valueString = upsert.GetColorTheme().String()
} else {
return nil, errors.New("invalid user setting key")
@ -79,7 +79,7 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
return nil, err
}
userSetting.Key = storepb.UserSettingKey(storepb.UserSettingKey_value[keyString])
if userSetting.Key == storepb.UserSettingKey_USER_SETTING_ACCESS_TOKENS {
if userSetting.Key == storepb.UserSettingKey_ACCESS_TOKENS {
accessTokensUserSetting := &storepb.AccessTokensUserSetting{}
if err := protojson.Unmarshal([]byte(valueString), accessTokensUserSetting); err != nil {
return nil, err
@ -87,16 +87,17 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
userSetting.Value = &storepb.UserSetting_AccessTokens{
AccessTokens: accessTokensUserSetting,
}
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_LOCALE {
} else if userSetting.Key == storepb.UserSettingKey_LOCALE {
userSetting.Value = &storepb.UserSetting_Locale{
Locale: storepb.LocaleUserSetting(storepb.LocaleUserSetting_value[valueString]),
}
} else if userSetting.Key == storepb.UserSettingKey_USER_SETTING_COLOR_THEME {
} else if userSetting.Key == storepb.UserSettingKey_COLOR_THEME {
userSetting.Value = &storepb.UserSetting_ColorTheme{
ColorTheme: storepb.ColorThemeUserSetting(storepb.ColorThemeUserSetting_value[valueString]),
}
} else {
return nil, errors.New("invalid user setting key")
// Skip unknown key.
continue
}
userSettingList = append(userSettingList, userSetting)
}

View File

@ -57,7 +57,7 @@ func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*sto
func (s *Store) GetUserAccessTokens(ctx context.Context, userID int32) ([]*storepb.AccessTokensUserSetting_AccessToken, error) {
userSetting, err := s.GetUserSetting(ctx, &FindUserSetting{
UserID: &userID,
Key: storepb.UserSettingKey_USER_SETTING_ACCESS_TOKENS,
Key: storepb.UserSettingKey_ACCESS_TOKENS,
})
if err != nil {
return nil, err