mirror of
https://github.com/usememos/memos.git
synced 2025-10-15 16:56:16 +08:00
refactor: general user setting
This commit is contained in:
parent
9b15936873
commit
e6e460493c
9 changed files with 509 additions and 468 deletions
|
@ -22,85 +22,75 @@ const (
|
||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserSettingKey int32
|
type UserSetting_Key int32
|
||||||
|
|
||||||
const (
|
const (
|
||||||
UserSettingKey_USER_SETTING_KEY_UNSPECIFIED UserSettingKey = 0
|
UserSetting_KEY_UNSPECIFIED UserSetting_Key = 0
|
||||||
// Access tokens for the user.
|
// General user settings.
|
||||||
UserSettingKey_ACCESS_TOKENS UserSettingKey = 1
|
UserSetting_GENERAL UserSetting_Key = 1
|
||||||
// The locale of the user.
|
|
||||||
UserSettingKey_LOCALE UserSettingKey = 2
|
|
||||||
// The appearance of the user.
|
|
||||||
UserSettingKey_APPEARANCE UserSettingKey = 3
|
|
||||||
// The visibility of the memo.
|
|
||||||
UserSettingKey_MEMO_VISIBILITY UserSettingKey = 4
|
|
||||||
// The shortcuts of the user.
|
|
||||||
UserSettingKey_SHORTCUTS UserSettingKey = 5
|
|
||||||
// User authentication sessions.
|
// User authentication sessions.
|
||||||
UserSettingKey_SESSIONS UserSettingKey = 6
|
UserSetting_SESSIONS UserSetting_Key = 2
|
||||||
|
// Access tokens for the user.
|
||||||
|
UserSetting_ACCESS_TOKENS UserSetting_Key = 3
|
||||||
|
// The shortcuts of the user.
|
||||||
|
UserSetting_SHORTCUTS UserSetting_Key = 4
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for UserSettingKey.
|
// Enum value maps for UserSetting_Key.
|
||||||
var (
|
var (
|
||||||
UserSettingKey_name = map[int32]string{
|
UserSetting_Key_name = map[int32]string{
|
||||||
0: "USER_SETTING_KEY_UNSPECIFIED",
|
0: "KEY_UNSPECIFIED",
|
||||||
1: "ACCESS_TOKENS",
|
1: "GENERAL",
|
||||||
2: "LOCALE",
|
2: "SESSIONS",
|
||||||
3: "APPEARANCE",
|
3: "ACCESS_TOKENS",
|
||||||
4: "MEMO_VISIBILITY",
|
4: "SHORTCUTS",
|
||||||
5: "SHORTCUTS",
|
|
||||||
6: "SESSIONS",
|
|
||||||
}
|
}
|
||||||
UserSettingKey_value = map[string]int32{
|
UserSetting_Key_value = map[string]int32{
|
||||||
"USER_SETTING_KEY_UNSPECIFIED": 0,
|
"KEY_UNSPECIFIED": 0,
|
||||||
"ACCESS_TOKENS": 1,
|
"GENERAL": 1,
|
||||||
"LOCALE": 2,
|
"SESSIONS": 2,
|
||||||
"APPEARANCE": 3,
|
"ACCESS_TOKENS": 3,
|
||||||
"MEMO_VISIBILITY": 4,
|
"SHORTCUTS": 4,
|
||||||
"SHORTCUTS": 5,
|
|
||||||
"SESSIONS": 6,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func (x UserSettingKey) Enum() *UserSettingKey {
|
func (x UserSetting_Key) Enum() *UserSetting_Key {
|
||||||
p := new(UserSettingKey)
|
p := new(UserSetting_Key)
|
||||||
*p = x
|
*p = x
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x UserSettingKey) String() string {
|
func (x UserSetting_Key) String() string {
|
||||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (UserSettingKey) Descriptor() protoreflect.EnumDescriptor {
|
func (UserSetting_Key) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_store_user_setting_proto_enumTypes[0].Descriptor()
|
return file_store_user_setting_proto_enumTypes[0].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (UserSettingKey) Type() protoreflect.EnumType {
|
func (UserSetting_Key) Type() protoreflect.EnumType {
|
||||||
return &file_store_user_setting_proto_enumTypes[0]
|
return &file_store_user_setting_proto_enumTypes[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x UserSettingKey) Number() protoreflect.EnumNumber {
|
func (x UserSetting_Key) Number() protoreflect.EnumNumber {
|
||||||
return protoreflect.EnumNumber(x)
|
return protoreflect.EnumNumber(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use UserSettingKey.Descriptor instead.
|
// Deprecated: Use UserSetting_Key.Descriptor instead.
|
||||||
func (UserSettingKey) EnumDescriptor() ([]byte, []int) {
|
func (UserSetting_Key) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{0}
|
return file_store_user_setting_proto_rawDescGZIP(), []int{0, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserSetting struct {
|
type UserSetting struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
UserId int32 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
UserId int32 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
||||||
Key UserSettingKey `protobuf:"varint,2,opt,name=key,proto3,enum=memos.store.UserSettingKey" json:"key,omitempty"`
|
Key UserSetting_Key `protobuf:"varint,2,opt,name=key,proto3,enum=memos.store.UserSetting_Key" json:"key,omitempty"`
|
||||||
// Types that are valid to be assigned to Value:
|
// Types that are valid to be assigned to Value:
|
||||||
//
|
//
|
||||||
// *UserSetting_AccessTokens
|
// *UserSetting_General
|
||||||
// *UserSetting_Locale
|
|
||||||
// *UserSetting_Appearance
|
|
||||||
// *UserSetting_MemoVisibility
|
|
||||||
// *UserSetting_Shortcuts
|
|
||||||
// *UserSetting_Sessions
|
// *UserSetting_Sessions
|
||||||
|
// *UserSetting_AccessTokens
|
||||||
|
// *UserSetting_Shortcuts
|
||||||
Value isUserSetting_Value `protobuf_oneof:"value"`
|
Value isUserSetting_Value `protobuf_oneof:"value"`
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -143,11 +133,11 @@ func (x *UserSetting) GetUserId() int32 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UserSetting) GetKey() UserSettingKey {
|
func (x *UserSetting) GetKey() UserSetting_Key {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Key
|
return x.Key
|
||||||
}
|
}
|
||||||
return UserSettingKey_USER_SETTING_KEY_UNSPECIFIED
|
return UserSetting_KEY_UNSPECIFIED
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UserSetting) GetValue() isUserSetting_Value {
|
func (x *UserSetting) GetValue() isUserSetting_Value {
|
||||||
|
@ -157,46 +147,10 @@ func (x *UserSetting) GetValue() isUserSetting_Value {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UserSetting) GetAccessTokens() *AccessTokensUserSetting {
|
func (x *UserSetting) GetGeneral() *GeneralUserSetting {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
if x, ok := x.Value.(*UserSetting_AccessTokens); ok {
|
if x, ok := x.Value.(*UserSetting_General); ok {
|
||||||
return x.AccessTokens
|
return x.General
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *UserSetting) GetLocale() string {
|
|
||||||
if x != nil {
|
|
||||||
if x, ok := x.Value.(*UserSetting_Locale); ok {
|
|
||||||
return x.Locale
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *UserSetting) GetAppearance() string {
|
|
||||||
if x != nil {
|
|
||||||
if x, ok := x.Value.(*UserSetting_Appearance); ok {
|
|
||||||
return x.Appearance
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *UserSetting) GetMemoVisibility() string {
|
|
||||||
if x != nil {
|
|
||||||
if x, ok := x.Value.(*UserSetting_MemoVisibility); ok {
|
|
||||||
return x.MemoVisibility
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *UserSetting) GetShortcuts() *ShortcutsUserSetting {
|
|
||||||
if x != nil {
|
|
||||||
if x, ok := x.Value.(*UserSetting_Shortcuts); ok {
|
|
||||||
return x.Shortcuts
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -211,45 +165,158 @@ func (x *UserSetting) GetSessions() *SessionsUserSetting {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *UserSetting) GetAccessTokens() *AccessTokensUserSetting {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.Value.(*UserSetting_AccessTokens); ok {
|
||||||
|
return x.AccessTokens
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserSetting) GetShortcuts() *ShortcutsUserSetting {
|
||||||
|
if x != nil {
|
||||||
|
if x, ok := x.Value.(*UserSetting_Shortcuts); ok {
|
||||||
|
return x.Shortcuts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
type isUserSetting_Value interface {
|
type isUserSetting_Value interface {
|
||||||
isUserSetting_Value()
|
isUserSetting_Value()
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserSetting_AccessTokens struct {
|
type UserSetting_General struct {
|
||||||
AccessTokens *AccessTokensUserSetting `protobuf:"bytes,3,opt,name=access_tokens,json=accessTokens,proto3,oneof"`
|
General *GeneralUserSetting `protobuf:"bytes,3,opt,name=general,proto3,oneof"`
|
||||||
}
|
|
||||||
|
|
||||||
type UserSetting_Locale struct {
|
|
||||||
Locale string `protobuf:"bytes,4,opt,name=locale,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UserSetting_Appearance struct {
|
|
||||||
Appearance string `protobuf:"bytes,5,opt,name=appearance,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UserSetting_MemoVisibility struct {
|
|
||||||
MemoVisibility string `protobuf:"bytes,6,opt,name=memo_visibility,json=memoVisibility,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type UserSetting_Shortcuts struct {
|
|
||||||
Shortcuts *ShortcutsUserSetting `protobuf:"bytes,7,opt,name=shortcuts,proto3,oneof"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserSetting_Sessions struct {
|
type UserSetting_Sessions struct {
|
||||||
Sessions *SessionsUserSetting `protobuf:"bytes,8,opt,name=sessions,proto3,oneof"`
|
Sessions *SessionsUserSetting `protobuf:"bytes,4,opt,name=sessions,proto3,oneof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UserSetting_AccessTokens struct {
|
||||||
|
AccessTokens *AccessTokensUserSetting `protobuf:"bytes,5,opt,name=access_tokens,json=accessTokens,proto3,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type UserSetting_Shortcuts struct {
|
||||||
|
Shortcuts *ShortcutsUserSetting `protobuf:"bytes,6,opt,name=shortcuts,proto3,oneof"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*UserSetting_General) isUserSetting_Value() {}
|
||||||
|
|
||||||
|
func (*UserSetting_Sessions) isUserSetting_Value() {}
|
||||||
|
|
||||||
func (*UserSetting_AccessTokens) isUserSetting_Value() {}
|
func (*UserSetting_AccessTokens) isUserSetting_Value() {}
|
||||||
|
|
||||||
func (*UserSetting_Locale) isUserSetting_Value() {}
|
|
||||||
|
|
||||||
func (*UserSetting_Appearance) isUserSetting_Value() {}
|
|
||||||
|
|
||||||
func (*UserSetting_MemoVisibility) isUserSetting_Value() {}
|
|
||||||
|
|
||||||
func (*UserSetting_Shortcuts) isUserSetting_Value() {}
|
func (*UserSetting_Shortcuts) isUserSetting_Value() {}
|
||||||
|
|
||||||
func (*UserSetting_Sessions) isUserSetting_Value() {}
|
type GeneralUserSetting struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
// The user's locale.
|
||||||
|
Locale string `protobuf:"bytes,1,opt,name=locale,proto3" json:"locale,omitempty"`
|
||||||
|
// The user's appearance setting.
|
||||||
|
Appearance string `protobuf:"bytes,2,opt,name=appearance,proto3" json:"appearance,omitempty"`
|
||||||
|
// The user's memo visibility setting.
|
||||||
|
MemoVisibility string `protobuf:"bytes,3,opt,name=memo_visibility,json=memoVisibility,proto3" json:"memo_visibility,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GeneralUserSetting) Reset() {
|
||||||
|
*x = GeneralUserSetting{}
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GeneralUserSetting) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GeneralUserSetting) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GeneralUserSetting) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[1]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GeneralUserSetting.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GeneralUserSetting) Descriptor() ([]byte, []int) {
|
||||||
|
return file_store_user_setting_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GeneralUserSetting) GetLocale() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Locale
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GeneralUserSetting) GetAppearance() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Appearance
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GeneralUserSetting) GetMemoVisibility() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.MemoVisibility
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type SessionsUserSetting struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Sessions []*SessionsUserSetting_Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SessionsUserSetting) Reset() {
|
||||||
|
*x = SessionsUserSetting{}
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SessionsUserSetting) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*SessionsUserSetting) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *SessionsUserSetting) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[2]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use SessionsUserSetting.ProtoReflect.Descriptor instead.
|
||||||
|
func (*SessionsUserSetting) Descriptor() ([]byte, []int) {
|
||||||
|
return file_store_user_setting_proto_rawDescGZIP(), []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SessionsUserSetting) GetSessions() []*SessionsUserSetting_Session {
|
||||||
|
if x != nil {
|
||||||
|
return x.Sessions
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
type AccessTokensUserSetting struct {
|
type AccessTokensUserSetting struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
@ -260,7 +327,7 @@ type AccessTokensUserSetting struct {
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting) Reset() {
|
func (x *AccessTokensUserSetting) Reset() {
|
||||||
*x = AccessTokensUserSetting{}
|
*x = AccessTokensUserSetting{}
|
||||||
mi := &file_store_user_setting_proto_msgTypes[1]
|
mi := &file_store_user_setting_proto_msgTypes[3]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -272,7 +339,7 @@ func (x *AccessTokensUserSetting) String() string {
|
||||||
func (*AccessTokensUserSetting) ProtoMessage() {}
|
func (*AccessTokensUserSetting) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting) ProtoReflect() protoreflect.Message {
|
func (x *AccessTokensUserSetting) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_store_user_setting_proto_msgTypes[1]
|
mi := &file_store_user_setting_proto_msgTypes[3]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -285,7 +352,7 @@ func (x *AccessTokensUserSetting) ProtoReflect() protoreflect.Message {
|
||||||
|
|
||||||
// Deprecated: Use AccessTokensUserSetting.ProtoReflect.Descriptor instead.
|
// Deprecated: Use AccessTokensUserSetting.ProtoReflect.Descriptor instead.
|
||||||
func (*AccessTokensUserSetting) Descriptor() ([]byte, []int) {
|
func (*AccessTokensUserSetting) Descriptor() ([]byte, []int) {
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{1}
|
return file_store_user_setting_proto_rawDescGZIP(), []int{3}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting) GetAccessTokens() []*AccessTokensUserSetting_AccessToken {
|
func (x *AccessTokensUserSetting) GetAccessTokens() []*AccessTokensUserSetting_AccessToken {
|
||||||
|
@ -304,7 +371,7 @@ type ShortcutsUserSetting struct {
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting) Reset() {
|
func (x *ShortcutsUserSetting) Reset() {
|
||||||
*x = ShortcutsUserSetting{}
|
*x = ShortcutsUserSetting{}
|
||||||
mi := &file_store_user_setting_proto_msgTypes[2]
|
mi := &file_store_user_setting_proto_msgTypes[4]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -316,7 +383,7 @@ func (x *ShortcutsUserSetting) String() string {
|
||||||
func (*ShortcutsUserSetting) ProtoMessage() {}
|
func (*ShortcutsUserSetting) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting) ProtoReflect() protoreflect.Message {
|
func (x *ShortcutsUserSetting) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_store_user_setting_proto_msgTypes[2]
|
mi := &file_store_user_setting_proto_msgTypes[4]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -329,7 +396,7 @@ func (x *ShortcutsUserSetting) ProtoReflect() protoreflect.Message {
|
||||||
|
|
||||||
// Deprecated: Use ShortcutsUserSetting.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ShortcutsUserSetting.ProtoReflect.Descriptor instead.
|
||||||
func (*ShortcutsUserSetting) Descriptor() ([]byte, []int) {
|
func (*ShortcutsUserSetting) Descriptor() ([]byte, []int) {
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{2}
|
return file_store_user_setting_proto_rawDescGZIP(), []int{4}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting) GetShortcuts() []*ShortcutsUserSetting_Shortcut {
|
func (x *ShortcutsUserSetting) GetShortcuts() []*ShortcutsUserSetting_Shortcut {
|
||||||
|
@ -339,165 +406,6 @@ func (x *ShortcutsUserSetting) GetShortcuts() []*ShortcutsUserSetting_Shortcut {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type SessionsUserSetting struct {
|
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
|
||||||
Sessions []*SessionsUserSetting_Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"`
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SessionsUserSetting) Reset() {
|
|
||||||
*x = SessionsUserSetting{}
|
|
||||||
mi := &file_store_user_setting_proto_msgTypes[3]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SessionsUserSetting) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*SessionsUserSetting) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *SessionsUserSetting) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_store_user_setting_proto_msgTypes[3]
|
|
||||||
if x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use SessionsUserSetting.ProtoReflect.Descriptor instead.
|
|
||||||
func (*SessionsUserSetting) Descriptor() ([]byte, []int) {
|
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{3}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *SessionsUserSetting) GetSessions() []*SessionsUserSetting_Session {
|
|
||||||
if x != nil {
|
|
||||||
return x.Sessions
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type AccessTokensUserSetting_AccessToken struct {
|
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
|
||||||
// The access token is a JWT token.
|
|
||||||
// Including expiration time, issuer, etc.
|
|
||||||
AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
|
|
||||||
// A description for the access token.
|
|
||||||
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting_AccessToken) Reset() {
|
|
||||||
*x = AccessTokensUserSetting_AccessToken{}
|
|
||||||
mi := &file_store_user_setting_proto_msgTypes[4]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting_AccessToken) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*AccessTokensUserSetting_AccessToken) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting_AccessToken) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_store_user_setting_proto_msgTypes[4]
|
|
||||||
if x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use AccessTokensUserSetting_AccessToken.ProtoReflect.Descriptor instead.
|
|
||||||
func (*AccessTokensUserSetting_AccessToken) Descriptor() ([]byte, []int) {
|
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{1, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting_AccessToken) GetAccessToken() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.AccessToken
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *AccessTokensUserSetting_AccessToken) GetDescription() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Description
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type ShortcutsUserSetting_Shortcut struct {
|
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
|
||||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
||||||
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
||||||
Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting_Shortcut) Reset() {
|
|
||||||
*x = ShortcutsUserSetting_Shortcut{}
|
|
||||||
mi := &file_store_user_setting_proto_msgTypes[5]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting_Shortcut) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ShortcutsUserSetting_Shortcut) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting_Shortcut) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_store_user_setting_proto_msgTypes[5]
|
|
||||||
if x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use ShortcutsUserSetting_Shortcut.ProtoReflect.Descriptor instead.
|
|
||||||
func (*ShortcutsUserSetting_Shortcut) Descriptor() ([]byte, []int) {
|
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{2, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting_Shortcut) GetId() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Id
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting_Shortcut) GetTitle() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Title
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ShortcutsUserSetting_Shortcut) GetFilter() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Filter
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type SessionsUserSetting_Session struct {
|
type SessionsUserSetting_Session struct {
|
||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
// Unique session identifier.
|
// Unique session identifier.
|
||||||
|
@ -516,7 +424,7 @@ type SessionsUserSetting_Session struct {
|
||||||
|
|
||||||
func (x *SessionsUserSetting_Session) Reset() {
|
func (x *SessionsUserSetting_Session) Reset() {
|
||||||
*x = SessionsUserSetting_Session{}
|
*x = SessionsUserSetting_Session{}
|
||||||
mi := &file_store_user_setting_proto_msgTypes[6]
|
mi := &file_store_user_setting_proto_msgTypes[5]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -528,7 +436,7 @@ func (x *SessionsUserSetting_Session) String() string {
|
||||||
func (*SessionsUserSetting_Session) ProtoMessage() {}
|
func (*SessionsUserSetting_Session) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *SessionsUserSetting_Session) ProtoReflect() protoreflect.Message {
|
func (x *SessionsUserSetting_Session) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_store_user_setting_proto_msgTypes[6]
|
mi := &file_store_user_setting_proto_msgTypes[5]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -541,7 +449,7 @@ func (x *SessionsUserSetting_Session) ProtoReflect() protoreflect.Message {
|
||||||
|
|
||||||
// Deprecated: Use SessionsUserSetting_Session.ProtoReflect.Descriptor instead.
|
// Deprecated: Use SessionsUserSetting_Session.ProtoReflect.Descriptor instead.
|
||||||
func (*SessionsUserSetting_Session) Descriptor() ([]byte, []int) {
|
func (*SessionsUserSetting_Session) Descriptor() ([]byte, []int) {
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{3, 0}
|
return file_store_user_setting_proto_rawDescGZIP(), []int{2, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SessionsUserSetting_Session) GetSessionId() string {
|
func (x *SessionsUserSetting_Session) GetSessionId() string {
|
||||||
|
@ -597,7 +505,7 @@ type SessionsUserSetting_ClientInfo struct {
|
||||||
|
|
||||||
func (x *SessionsUserSetting_ClientInfo) Reset() {
|
func (x *SessionsUserSetting_ClientInfo) Reset() {
|
||||||
*x = SessionsUserSetting_ClientInfo{}
|
*x = SessionsUserSetting_ClientInfo{}
|
||||||
mi := &file_store_user_setting_proto_msgTypes[7]
|
mi := &file_store_user_setting_proto_msgTypes[6]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -609,7 +517,7 @@ func (x *SessionsUserSetting_ClientInfo) String() string {
|
||||||
func (*SessionsUserSetting_ClientInfo) ProtoMessage() {}
|
func (*SessionsUserSetting_ClientInfo) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *SessionsUserSetting_ClientInfo) ProtoReflect() protoreflect.Message {
|
func (x *SessionsUserSetting_ClientInfo) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_store_user_setting_proto_msgTypes[7]
|
mi := &file_store_user_setting_proto_msgTypes[6]
|
||||||
if x != nil {
|
if x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -622,7 +530,7 @@ func (x *SessionsUserSetting_ClientInfo) ProtoReflect() protoreflect.Message {
|
||||||
|
|
||||||
// Deprecated: Use SessionsUserSetting_ClientInfo.ProtoReflect.Descriptor instead.
|
// Deprecated: Use SessionsUserSetting_ClientInfo.ProtoReflect.Descriptor instead.
|
||||||
func (*SessionsUserSetting_ClientInfo) Descriptor() ([]byte, []int) {
|
func (*SessionsUserSetting_ClientInfo) Descriptor() ([]byte, []int) {
|
||||||
return file_store_user_setting_proto_rawDescGZIP(), []int{3, 1}
|
return file_store_user_setting_proto_rawDescGZIP(), []int{2, 1}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SessionsUserSetting_ClientInfo) GetUserAgent() string {
|
func (x *SessionsUserSetting_ClientInfo) GetUserAgent() string {
|
||||||
|
@ -660,34 +568,146 @@ func (x *SessionsUserSetting_ClientInfo) GetBrowser() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AccessTokensUserSetting_AccessToken struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
// The access token is a JWT token.
|
||||||
|
// Including expiration time, issuer, etc.
|
||||||
|
AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
|
||||||
|
// A description for the access token.
|
||||||
|
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *AccessTokensUserSetting_AccessToken) Reset() {
|
||||||
|
*x = AccessTokensUserSetting_AccessToken{}
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[7]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *AccessTokensUserSetting_AccessToken) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*AccessTokensUserSetting_AccessToken) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *AccessTokensUserSetting_AccessToken) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[7]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use AccessTokensUserSetting_AccessToken.ProtoReflect.Descriptor instead.
|
||||||
|
func (*AccessTokensUserSetting_AccessToken) Descriptor() ([]byte, []int) {
|
||||||
|
return file_store_user_setting_proto_rawDescGZIP(), []int{3, 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *AccessTokensUserSetting_AccessToken) GetAccessToken() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.AccessToken
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *AccessTokensUserSetting_AccessToken) GetDescription() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Description
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type ShortcutsUserSetting_Shortcut struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||||
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
||||||
|
Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ShortcutsUserSetting_Shortcut) Reset() {
|
||||||
|
*x = ShortcutsUserSetting_Shortcut{}
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[8]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ShortcutsUserSetting_Shortcut) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*ShortcutsUserSetting_Shortcut) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *ShortcutsUserSetting_Shortcut) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_store_user_setting_proto_msgTypes[8]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ShortcutsUserSetting_Shortcut.ProtoReflect.Descriptor instead.
|
||||||
|
func (*ShortcutsUserSetting_Shortcut) Descriptor() ([]byte, []int) {
|
||||||
|
return file_store_user_setting_proto_rawDescGZIP(), []int{4, 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ShortcutsUserSetting_Shortcut) GetId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Id
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ShortcutsUserSetting_Shortcut) GetTitle() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Title
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ShortcutsUserSetting_Shortcut) GetFilter() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Filter
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
var File_store_user_setting_proto protoreflect.FileDescriptor
|
var File_store_user_setting_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_store_user_setting_proto_rawDesc = "" +
|
const file_store_user_setting_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x18store/user_setting.proto\x12\vmemos.store\x1a\x1fgoogle/protobuf/timestamp.proto\"\x95\x03\n" +
|
"\x18store/user_setting.proto\x12\vmemos.store\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc5\x03\n" +
|
||||||
"\vUserSetting\x12\x17\n" +
|
"\vUserSetting\x12\x17\n" +
|
||||||
"\auser_id\x18\x01 \x01(\x05R\x06userId\x12-\n" +
|
"\auser_id\x18\x01 \x01(\x05R\x06userId\x12.\n" +
|
||||||
"\x03key\x18\x02 \x01(\x0e2\x1b.memos.store.UserSettingKeyR\x03key\x12K\n" +
|
"\x03key\x18\x02 \x01(\x0e2\x1c.memos.store.UserSetting.KeyR\x03key\x12;\n" +
|
||||||
"\raccess_tokens\x18\x03 \x01(\v2$.memos.store.AccessTokensUserSettingH\x00R\faccessTokens\x12\x18\n" +
|
"\ageneral\x18\x03 \x01(\v2\x1f.memos.store.GeneralUserSettingH\x00R\ageneral\x12>\n" +
|
||||||
"\x06locale\x18\x04 \x01(\tH\x00R\x06locale\x12 \n" +
|
"\bsessions\x18\x04 \x01(\v2 .memos.store.SessionsUserSettingH\x00R\bsessions\x12K\n" +
|
||||||
|
"\raccess_tokens\x18\x05 \x01(\v2$.memos.store.AccessTokensUserSettingH\x00R\faccessTokens\x12A\n" +
|
||||||
|
"\tshortcuts\x18\x06 \x01(\v2!.memos.store.ShortcutsUserSettingH\x00R\tshortcuts\"W\n" +
|
||||||
|
"\x03Key\x12\x13\n" +
|
||||||
|
"\x0fKEY_UNSPECIFIED\x10\x00\x12\v\n" +
|
||||||
|
"\aGENERAL\x10\x01\x12\f\n" +
|
||||||
|
"\bSESSIONS\x10\x02\x12\x11\n" +
|
||||||
|
"\rACCESS_TOKENS\x10\x03\x12\r\n" +
|
||||||
|
"\tSHORTCUTS\x10\x04B\a\n" +
|
||||||
|
"\x05value\"u\n" +
|
||||||
|
"\x12GeneralUserSetting\x12\x16\n" +
|
||||||
|
"\x06locale\x18\x01 \x01(\tR\x06locale\x12\x1e\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"appearance\x18\x05 \x01(\tH\x00R\n" +
|
"appearance\x18\x02 \x01(\tR\n" +
|
||||||
"appearance\x12)\n" +
|
"appearance\x12'\n" +
|
||||||
"\x0fmemo_visibility\x18\x06 \x01(\tH\x00R\x0ememoVisibility\x12A\n" +
|
"\x0fmemo_visibility\x18\x03 \x01(\tR\x0ememoVisibility\"\xb0\x04\n" +
|
||||||
"\tshortcuts\x18\a \x01(\v2!.memos.store.ShortcutsUserSettingH\x00R\tshortcuts\x12>\n" +
|
|
||||||
"\bsessions\x18\b \x01(\v2 .memos.store.SessionsUserSettingH\x00R\bsessionsB\a\n" +
|
|
||||||
"\x05value\"\xc4\x01\n" +
|
|
||||||
"\x17AccessTokensUserSetting\x12U\n" +
|
|
||||||
"\raccess_tokens\x18\x01 \x03(\v20.memos.store.AccessTokensUserSetting.AccessTokenR\faccessTokens\x1aR\n" +
|
|
||||||
"\vAccessToken\x12!\n" +
|
|
||||||
"\faccess_token\x18\x01 \x01(\tR\vaccessToken\x12 \n" +
|
|
||||||
"\vdescription\x18\x02 \x01(\tR\vdescription\"\xaa\x01\n" +
|
|
||||||
"\x14ShortcutsUserSetting\x12H\n" +
|
|
||||||
"\tshortcuts\x18\x01 \x03(\v2*.memos.store.ShortcutsUserSetting.ShortcutR\tshortcuts\x1aH\n" +
|
|
||||||
"\bShortcut\x12\x0e\n" +
|
|
||||||
"\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" +
|
|
||||||
"\x05title\x18\x02 \x01(\tR\x05title\x12\x16\n" +
|
|
||||||
"\x06filter\x18\x03 \x01(\tR\x06filter\"\xb0\x04\n" +
|
|
||||||
"\x13SessionsUserSetting\x12D\n" +
|
"\x13SessionsUserSetting\x12D\n" +
|
||||||
"\bsessions\x18\x01 \x03(\v2(.memos.store.SessionsUserSetting.SessionR\bsessions\x1a\xba\x02\n" +
|
"\bsessions\x18\x01 \x03(\v2(.memos.store.SessionsUserSetting.SessionR\bsessions\x1a\xba\x02\n" +
|
||||||
"\aSession\x12\x1d\n" +
|
"\aSession\x12\x1d\n" +
|
||||||
|
@ -709,17 +729,18 @@ const file_store_user_setting_proto_rawDesc = "" +
|
||||||
"\vdevice_type\x18\x03 \x01(\tR\n" +
|
"\vdevice_type\x18\x03 \x01(\tR\n" +
|
||||||
"deviceType\x12\x0e\n" +
|
"deviceType\x12\x0e\n" +
|
||||||
"\x02os\x18\x04 \x01(\tR\x02os\x12\x18\n" +
|
"\x02os\x18\x04 \x01(\tR\x02os\x12\x18\n" +
|
||||||
"\abrowser\x18\x05 \x01(\tR\abrowser*\x93\x01\n" +
|
"\abrowser\x18\x05 \x01(\tR\abrowser\"\xc4\x01\n" +
|
||||||
"\x0eUserSettingKey\x12 \n" +
|
"\x17AccessTokensUserSetting\x12U\n" +
|
||||||
"\x1cUSER_SETTING_KEY_UNSPECIFIED\x10\x00\x12\x11\n" +
|
"\raccess_tokens\x18\x01 \x03(\v20.memos.store.AccessTokensUserSetting.AccessTokenR\faccessTokens\x1aR\n" +
|
||||||
"\rACCESS_TOKENS\x10\x01\x12\n" +
|
"\vAccessToken\x12!\n" +
|
||||||
"\n" +
|
"\faccess_token\x18\x01 \x01(\tR\vaccessToken\x12 \n" +
|
||||||
"\x06LOCALE\x10\x02\x12\x0e\n" +
|
"\vdescription\x18\x02 \x01(\tR\vdescription\"\xaa\x01\n" +
|
||||||
"\n" +
|
"\x14ShortcutsUserSetting\x12H\n" +
|
||||||
"APPEARANCE\x10\x03\x12\x13\n" +
|
"\tshortcuts\x18\x01 \x03(\v2*.memos.store.ShortcutsUserSetting.ShortcutR\tshortcuts\x1aH\n" +
|
||||||
"\x0fMEMO_VISIBILITY\x10\x04\x12\r\n" +
|
"\bShortcut\x12\x0e\n" +
|
||||||
"\tSHORTCUTS\x10\x05\x12\f\n" +
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" +
|
||||||
"\bSESSIONS\x10\x06B\x9b\x01\n" +
|
"\x05title\x18\x02 \x01(\tR\x05title\x12\x16\n" +
|
||||||
|
"\x06filter\x18\x03 \x01(\tR\x06filterB\x9b\x01\n" +
|
||||||
"\x0fcom.memos.storeB\x10UserSettingProtoP\x01Z)github.com/usememos/memos/proto/gen/store\xa2\x02\x03MSX\xaa\x02\vMemos.Store\xca\x02\vMemos\\Store\xe2\x02\x17Memos\\Store\\GPBMetadata\xea\x02\fMemos::Storeb\x06proto3"
|
"\x0fcom.memos.storeB\x10UserSettingProtoP\x01Z)github.com/usememos/memos/proto/gen/store\xa2\x02\x03MSX\xaa\x02\vMemos.Store\xca\x02\vMemos\\Store\xe2\x02\x17Memos\\Store\\GPBMetadata\xea\x02\fMemos::Storeb\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -735,36 +756,38 @@ func file_store_user_setting_proto_rawDescGZIP() []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_store_user_setting_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
var file_store_user_setting_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||||
var file_store_user_setting_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
|
var file_store_user_setting_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
||||||
var file_store_user_setting_proto_goTypes = []any{
|
var file_store_user_setting_proto_goTypes = []any{
|
||||||
(UserSettingKey)(0), // 0: memos.store.UserSettingKey
|
(UserSetting_Key)(0), // 0: memos.store.UserSetting.Key
|
||||||
(*UserSetting)(nil), // 1: memos.store.UserSetting
|
(*UserSetting)(nil), // 1: memos.store.UserSetting
|
||||||
(*AccessTokensUserSetting)(nil), // 2: memos.store.AccessTokensUserSetting
|
(*GeneralUserSetting)(nil), // 2: memos.store.GeneralUserSetting
|
||||||
(*ShortcutsUserSetting)(nil), // 3: memos.store.ShortcutsUserSetting
|
(*SessionsUserSetting)(nil), // 3: memos.store.SessionsUserSetting
|
||||||
(*SessionsUserSetting)(nil), // 4: memos.store.SessionsUserSetting
|
(*AccessTokensUserSetting)(nil), // 4: memos.store.AccessTokensUserSetting
|
||||||
(*AccessTokensUserSetting_AccessToken)(nil), // 5: memos.store.AccessTokensUserSetting.AccessToken
|
(*ShortcutsUserSetting)(nil), // 5: memos.store.ShortcutsUserSetting
|
||||||
(*ShortcutsUserSetting_Shortcut)(nil), // 6: memos.store.ShortcutsUserSetting.Shortcut
|
(*SessionsUserSetting_Session)(nil), // 6: memos.store.SessionsUserSetting.Session
|
||||||
(*SessionsUserSetting_Session)(nil), // 7: memos.store.SessionsUserSetting.Session
|
(*SessionsUserSetting_ClientInfo)(nil), // 7: memos.store.SessionsUserSetting.ClientInfo
|
||||||
(*SessionsUserSetting_ClientInfo)(nil), // 8: memos.store.SessionsUserSetting.ClientInfo
|
(*AccessTokensUserSetting_AccessToken)(nil), // 8: memos.store.AccessTokensUserSetting.AccessToken
|
||||||
(*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp
|
(*ShortcutsUserSetting_Shortcut)(nil), // 9: memos.store.ShortcutsUserSetting.Shortcut
|
||||||
|
(*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp
|
||||||
}
|
}
|
||||||
var file_store_user_setting_proto_depIdxs = []int32{
|
var file_store_user_setting_proto_depIdxs = []int32{
|
||||||
0, // 0: memos.store.UserSetting.key:type_name -> memos.store.UserSettingKey
|
0, // 0: memos.store.UserSetting.key:type_name -> memos.store.UserSetting.Key
|
||||||
2, // 1: memos.store.UserSetting.access_tokens:type_name -> memos.store.AccessTokensUserSetting
|
2, // 1: memos.store.UserSetting.general:type_name -> memos.store.GeneralUserSetting
|
||||||
3, // 2: memos.store.UserSetting.shortcuts:type_name -> memos.store.ShortcutsUserSetting
|
3, // 2: memos.store.UserSetting.sessions:type_name -> memos.store.SessionsUserSetting
|
||||||
4, // 3: memos.store.UserSetting.sessions:type_name -> memos.store.SessionsUserSetting
|
4, // 3: memos.store.UserSetting.access_tokens:type_name -> memos.store.AccessTokensUserSetting
|
||||||
5, // 4: memos.store.AccessTokensUserSetting.access_tokens:type_name -> memos.store.AccessTokensUserSetting.AccessToken
|
5, // 4: memos.store.UserSetting.shortcuts:type_name -> memos.store.ShortcutsUserSetting
|
||||||
6, // 5: memos.store.ShortcutsUserSetting.shortcuts:type_name -> memos.store.ShortcutsUserSetting.Shortcut
|
6, // 5: memos.store.SessionsUserSetting.sessions:type_name -> memos.store.SessionsUserSetting.Session
|
||||||
7, // 6: memos.store.SessionsUserSetting.sessions:type_name -> memos.store.SessionsUserSetting.Session
|
8, // 6: memos.store.AccessTokensUserSetting.access_tokens:type_name -> memos.store.AccessTokensUserSetting.AccessToken
|
||||||
9, // 7: memos.store.SessionsUserSetting.Session.create_time:type_name -> google.protobuf.Timestamp
|
9, // 7: memos.store.ShortcutsUserSetting.shortcuts:type_name -> memos.store.ShortcutsUserSetting.Shortcut
|
||||||
9, // 8: memos.store.SessionsUserSetting.Session.expire_time:type_name -> google.protobuf.Timestamp
|
10, // 8: memos.store.SessionsUserSetting.Session.create_time:type_name -> google.protobuf.Timestamp
|
||||||
9, // 9: memos.store.SessionsUserSetting.Session.last_accessed_time:type_name -> google.protobuf.Timestamp
|
10, // 9: memos.store.SessionsUserSetting.Session.expire_time:type_name -> google.protobuf.Timestamp
|
||||||
8, // 10: memos.store.SessionsUserSetting.Session.client_info:type_name -> memos.store.SessionsUserSetting.ClientInfo
|
10, // 10: memos.store.SessionsUserSetting.Session.last_accessed_time:type_name -> google.protobuf.Timestamp
|
||||||
11, // [11:11] is the sub-list for method output_type
|
7, // 11: memos.store.SessionsUserSetting.Session.client_info:type_name -> memos.store.SessionsUserSetting.ClientInfo
|
||||||
11, // [11:11] is the sub-list for method input_type
|
12, // [12:12] is the sub-list for method output_type
|
||||||
11, // [11:11] is the sub-list for extension type_name
|
12, // [12:12] is the sub-list for method input_type
|
||||||
11, // [11:11] is the sub-list for extension extendee
|
12, // [12:12] is the sub-list for extension type_name
|
||||||
0, // [0:11] is the sub-list for field type_name
|
12, // [12:12] is the sub-list for extension extendee
|
||||||
|
0, // [0:12] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_store_user_setting_proto_init() }
|
func init() { file_store_user_setting_proto_init() }
|
||||||
|
@ -773,12 +796,10 @@ func file_store_user_setting_proto_init() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
file_store_user_setting_proto_msgTypes[0].OneofWrappers = []any{
|
file_store_user_setting_proto_msgTypes[0].OneofWrappers = []any{
|
||||||
(*UserSetting_AccessTokens)(nil),
|
(*UserSetting_General)(nil),
|
||||||
(*UserSetting_Locale)(nil),
|
|
||||||
(*UserSetting_Appearance)(nil),
|
|
||||||
(*UserSetting_MemoVisibility)(nil),
|
|
||||||
(*UserSetting_Shortcuts)(nil),
|
|
||||||
(*UserSetting_Sessions)(nil),
|
(*UserSetting_Sessions)(nil),
|
||||||
|
(*UserSetting_AccessTokens)(nil),
|
||||||
|
(*UserSetting_Shortcuts)(nil),
|
||||||
}
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
|
@ -786,7 +807,7 @@ func file_store_user_setting_proto_init() {
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_store_user_setting_proto_rawDesc), len(file_store_user_setting_proto_rawDesc)),
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_store_user_setting_proto_rawDesc), len(file_store_user_setting_proto_rawDesc)),
|
||||||
NumEnums: 1,
|
NumEnums: 1,
|
||||||
NumMessages: 8,
|
NumMessages: 9,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,53 +6,38 @@ import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
option go_package = "gen/store";
|
option go_package = "gen/store";
|
||||||
|
|
||||||
enum UserSettingKey {
|
|
||||||
USER_SETTING_KEY_UNSPECIFIED = 0;
|
|
||||||
// Access tokens for the user.
|
|
||||||
ACCESS_TOKENS = 1;
|
|
||||||
// The locale of the user.
|
|
||||||
LOCALE = 2;
|
|
||||||
// The appearance of the user.
|
|
||||||
APPEARANCE = 3;
|
|
||||||
// The visibility of the memo.
|
|
||||||
MEMO_VISIBILITY = 4;
|
|
||||||
// The shortcuts of the user.
|
|
||||||
SHORTCUTS = 5;
|
|
||||||
// User authentication sessions.
|
|
||||||
SESSIONS = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
message UserSetting {
|
message UserSetting {
|
||||||
|
enum Key {
|
||||||
|
KEY_UNSPECIFIED = 0;
|
||||||
|
// General user settings.
|
||||||
|
GENERAL = 1;
|
||||||
|
// User authentication sessions.
|
||||||
|
SESSIONS = 2;
|
||||||
|
// Access tokens for the user.
|
||||||
|
ACCESS_TOKENS = 3;
|
||||||
|
// The shortcuts of the user.
|
||||||
|
SHORTCUTS = 4;
|
||||||
|
}
|
||||||
|
|
||||||
int32 user_id = 1;
|
int32 user_id = 1;
|
||||||
UserSettingKey key = 2;
|
|
||||||
|
Key key = 2;
|
||||||
|
|
||||||
oneof value {
|
oneof value {
|
||||||
AccessTokensUserSetting access_tokens = 3;
|
GeneralUserSetting general = 3;
|
||||||
string locale = 4;
|
SessionsUserSetting sessions = 4;
|
||||||
string appearance = 5;
|
AccessTokensUserSetting access_tokens = 5;
|
||||||
string memo_visibility = 6;
|
ShortcutsUserSetting shortcuts = 6;
|
||||||
ShortcutsUserSetting shortcuts = 7;
|
|
||||||
SessionsUserSetting sessions = 8;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
message AccessTokensUserSetting {
|
message GeneralUserSetting {
|
||||||
message AccessToken {
|
// The user's locale.
|
||||||
// The access token is a JWT token.
|
string locale = 1;
|
||||||
// Including expiration time, issuer, etc.
|
// The user's appearance setting.
|
||||||
string access_token = 1;
|
string appearance = 2;
|
||||||
// A description for the access token.
|
// The user's memo visibility setting.
|
||||||
string description = 2;
|
string memo_visibility = 3;
|
||||||
}
|
|
||||||
repeated AccessToken access_tokens = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message ShortcutsUserSetting {
|
|
||||||
message Shortcut {
|
|
||||||
string id = 1;
|
|
||||||
string title = 2;
|
|
||||||
string filter = 3;
|
|
||||||
}
|
|
||||||
repeated Shortcut shortcuts = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message SessionsUserSetting {
|
message SessionsUserSetting {
|
||||||
|
@ -84,3 +69,23 @@ message SessionsUserSetting {
|
||||||
|
|
||||||
repeated Session sessions = 1;
|
repeated Session sessions = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message AccessTokensUserSetting {
|
||||||
|
message AccessToken {
|
||||||
|
// The access token is a JWT token.
|
||||||
|
// Including expiration time, issuer, etc.
|
||||||
|
string access_token = 1;
|
||||||
|
// A description for the access token.
|
||||||
|
string description = 2;
|
||||||
|
}
|
||||||
|
repeated AccessToken access_tokens = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ShortcutsUserSetting {
|
||||||
|
message Shortcut {
|
||||||
|
string id = 1;
|
||||||
|
string title = 2;
|
||||||
|
string filter = 3;
|
||||||
|
}
|
||||||
|
repeated Shortcut shortcuts = 1;
|
||||||
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ func (s *APIV1Service) ListShortcuts(ctx context.Context, request *v1pb.ListShor
|
||||||
|
|
||||||
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_SHORTCUTS,
|
Key: storepb.UserSetting_SHORTCUTS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -101,7 +101,7 @@ func (s *APIV1Service) GetShortcut(ctx context.Context, request *v1pb.GetShortcu
|
||||||
|
|
||||||
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_SHORTCUTS,
|
Key: storepb.UserSetting_SHORTCUTS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -159,7 +159,7 @@ func (s *APIV1Service) CreateShortcut(ctx context.Context, request *v1pb.CreateS
|
||||||
|
|
||||||
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_SHORTCUTS,
|
Key: storepb.UserSetting_SHORTCUTS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -167,7 +167,7 @@ func (s *APIV1Service) CreateShortcut(ctx context.Context, request *v1pb.CreateS
|
||||||
if userSetting == nil {
|
if userSetting == nil {
|
||||||
userSetting = &storepb.UserSetting{
|
userSetting = &storepb.UserSetting{
|
||||||
UserId: userID,
|
UserId: userID,
|
||||||
Key: storepb.UserSettingKey_SHORTCUTS,
|
Key: storepb.UserSetting_SHORTCUTS,
|
||||||
Value: &storepb.UserSetting_Shortcuts{
|
Value: &storepb.UserSetting_Shortcuts{
|
||||||
Shortcuts: &storepb.ShortcutsUserSetting{
|
Shortcuts: &storepb.ShortcutsUserSetting{
|
||||||
Shortcuts: []*storepb.ShortcutsUserSetting_Shortcut{},
|
Shortcuts: []*storepb.ShortcutsUserSetting_Shortcut{},
|
||||||
|
@ -215,7 +215,7 @@ func (s *APIV1Service) UpdateShortcut(ctx context.Context, request *v1pb.UpdateS
|
||||||
|
|
||||||
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_SHORTCUTS,
|
Key: storepb.UserSetting_SHORTCUTS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -284,7 +284,7 @@ func (s *APIV1Service) DeleteShortcut(ctx context.Context, request *v1pb.DeleteS
|
||||||
|
|
||||||
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
userSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_SHORTCUTS,
|
Key: storepb.UserSetting_SHORTCUTS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -364,12 +364,13 @@ func (s *APIV1Service) GetUserSetting(ctx context.Context, request *v1pb.GetUser
|
||||||
userSettingMessage.Name = fmt.Sprintf("users/%d", userID)
|
userSettingMessage.Name = fmt.Sprintf("users/%d", userID)
|
||||||
|
|
||||||
for _, setting := range userSettings {
|
for _, setting := range userSettings {
|
||||||
if setting.Key == storepb.UserSettingKey_LOCALE {
|
if setting.Key == storepb.UserSetting_GENERAL {
|
||||||
userSettingMessage.Locale = setting.GetLocale()
|
general := setting.GetGeneral()
|
||||||
} else if setting.Key == storepb.UserSettingKey_APPEARANCE {
|
if general != nil {
|
||||||
userSettingMessage.Appearance = setting.GetAppearance()
|
userSettingMessage.Locale = general.Locale
|
||||||
} else if setting.Key == storepb.UserSettingKey_MEMO_VISIBILITY {
|
userSettingMessage.Appearance = general.Appearance
|
||||||
userSettingMessage.MemoVisibility = setting.GetMemoVisibility()
|
userSettingMessage.MemoVisibility = general.MemoVisibility
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return userSettingMessage, nil
|
return userSettingMessage, nil
|
||||||
|
@ -396,42 +397,55 @@ func (s *APIV1Service) UpdateUserSetting(ctx context.Context, request *v1pb.Upda
|
||||||
return nil, status.Errorf(codes.InvalidArgument, "update mask is empty")
|
return nil, status.Errorf(codes.InvalidArgument, "update mask is empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the current general setting
|
||||||
|
existingGeneralSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
|
||||||
|
UserID: &userID,
|
||||||
|
Key: storepb.UserSetting_GENERAL,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, status.Errorf(codes.Internal, "failed to get existing general setting: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create or update the general setting
|
||||||
|
generalSetting := &storepb.GeneralUserSetting{
|
||||||
|
Locale: "en",
|
||||||
|
Appearance: "system",
|
||||||
|
MemoVisibility: "PRIVATE",
|
||||||
|
}
|
||||||
|
|
||||||
|
// If there's an existing setting, use its values as defaults
|
||||||
|
if existingGeneralSetting != nil && existingGeneralSetting.GetGeneral() != nil {
|
||||||
|
existing := existingGeneralSetting.GetGeneral()
|
||||||
|
generalSetting.Locale = existing.Locale
|
||||||
|
generalSetting.Appearance = existing.Appearance
|
||||||
|
generalSetting.MemoVisibility = existing.MemoVisibility
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply updates based on the update mask
|
||||||
for _, field := range request.UpdateMask.Paths {
|
for _, field := range request.UpdateMask.Paths {
|
||||||
if field == "locale" {
|
switch field {
|
||||||
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
case "locale":
|
||||||
UserId: userID,
|
generalSetting.Locale = request.Setting.Locale
|
||||||
Key: storepb.UserSettingKey_LOCALE,
|
case "appearance":
|
||||||
Value: &storepb.UserSetting_Locale{
|
generalSetting.Appearance = request.Setting.Appearance
|
||||||
Locale: request.Setting.Locale,
|
case "memo_visibility":
|
||||||
},
|
generalSetting.MemoVisibility = request.Setting.MemoVisibility
|
||||||
}); err != nil {
|
default:
|
||||||
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
|
|
||||||
}
|
|
||||||
} else if field == "appearance" {
|
|
||||||
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
|
||||||
UserId: userID,
|
|
||||||
Key: storepb.UserSettingKey_APPEARANCE,
|
|
||||||
Value: &storepb.UserSetting_Appearance{
|
|
||||||
Appearance: request.Setting.Appearance,
|
|
||||||
},
|
|
||||||
}); err != nil {
|
|
||||||
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
|
|
||||||
}
|
|
||||||
} else if field == "memo_visibility" {
|
|
||||||
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
|
||||||
UserId: userID,
|
|
||||||
Key: storepb.UserSettingKey_MEMO_VISIBILITY,
|
|
||||||
Value: &storepb.UserSetting_MemoVisibility{
|
|
||||||
MemoVisibility: request.Setting.MemoVisibility,
|
|
||||||
},
|
|
||||||
}); err != nil {
|
|
||||||
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return nil, status.Errorf(codes.InvalidArgument, "invalid update path: %s", field)
|
return nil, status.Errorf(codes.InvalidArgument, "invalid update path: %s", field)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Upsert the general setting
|
||||||
|
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
|
UserId: userID,
|
||||||
|
Key: storepb.UserSetting_GENERAL,
|
||||||
|
Value: &storepb.UserSetting_General{
|
||||||
|
General: generalSetting,
|
||||||
|
},
|
||||||
|
}); err != nil {
|
||||||
|
return nil, status.Errorf(codes.Internal, "failed to upsert user setting: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return s.GetUserSetting(ctx, &v1pb.GetUserSettingRequest{Name: request.Setting.Name})
|
return s.GetUserSetting(ctx, &v1pb.GetUserSettingRequest{Name: request.Setting.Name})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -595,7 +609,7 @@ func (s *APIV1Service) DeleteUserAccessToken(ctx context.Context, request *v1pb.
|
||||||
}
|
}
|
||||||
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: currentUser.ID,
|
UserId: currentUser.ID,
|
||||||
Key: storepb.UserSettingKey_ACCESS_TOKENS,
|
Key: storepb.UserSetting_ACCESS_TOKENS,
|
||||||
Value: &storepb.UserSetting_AccessTokens{
|
Value: &storepb.UserSetting_AccessTokens{
|
||||||
AccessTokens: &storepb.AccessTokensUserSetting{
|
AccessTokens: &storepb.AccessTokensUserSetting{
|
||||||
AccessTokens: updatedUserAccessTokens,
|
AccessTokens: updatedUserAccessTokens,
|
||||||
|
@ -722,7 +736,7 @@ func (s *APIV1Service) UpsertAccessTokenToStore(ctx context.Context, user *store
|
||||||
|
|
||||||
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
if _, err := s.Store.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: user.ID,
|
UserId: user.ID,
|
||||||
Key: storepb.UserSettingKey_ACCESS_TOKENS,
|
Key: storepb.UserSetting_ACCESS_TOKENS,
|
||||||
Value: &storepb.UserSetting_AccessTokens{
|
Value: &storepb.UserSetting_AccessTokens{
|
||||||
AccessTokens: &storepb.AccessTokensUserSetting{
|
AccessTokens: &storepb.AccessTokensUserSetting{
|
||||||
AccessTokens: userAccessTokens,
|
AccessTokens: userAccessTokens,
|
||||||
|
|
|
@ -19,7 +19,7 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *store.UserSetting) (
|
||||||
func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting) ([]*store.UserSetting, error) {
|
func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting) ([]*store.UserSetting, error) {
|
||||||
where, args := []string{"1 = 1"}, []any{}
|
where, args := []string{"1 = 1"}, []any{}
|
||||||
|
|
||||||
if v := find.Key; v != storepb.UserSettingKey_USER_SETTING_KEY_UNSPECIFIED {
|
if v := find.Key; v != storepb.UserSetting_KEY_UNSPECIFIED {
|
||||||
where, args = append(where, "`key` = ?"), append(args, v.String())
|
where, args = append(where, "`key` = ?"), append(args, v.String())
|
||||||
}
|
}
|
||||||
if v := find.UserID; v != nil {
|
if v := find.UserID; v != nil {
|
||||||
|
@ -44,7 +44,7 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
userSetting.Key = storepb.UserSettingKey(storepb.UserSettingKey_value[keyString])
|
userSetting.Key = storepb.UserSetting_Key(storepb.UserSetting_Key_value[keyString])
|
||||||
userSettingList = append(userSettingList, userSetting)
|
userSettingList = append(userSettingList, userSetting)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *store.UserSetting) (
|
||||||
func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting) ([]*store.UserSetting, error) {
|
func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting) ([]*store.UserSetting, error) {
|
||||||
where, args := []string{"1 = 1"}, []any{}
|
where, args := []string{"1 = 1"}, []any{}
|
||||||
|
|
||||||
if v := find.Key; v != storepb.UserSettingKey_USER_SETTING_KEY_UNSPECIFIED {
|
if v := find.Key; v != storepb.UserSetting_KEY_UNSPECIFIED {
|
||||||
where, args = append(where, "key = "+placeholder(len(args)+1)), append(args, v.String())
|
where, args = append(where, "key = "+placeholder(len(args)+1)), append(args, v.String())
|
||||||
}
|
}
|
||||||
if v := find.UserID; v != nil {
|
if v := find.UserID; v != nil {
|
||||||
|
@ -57,7 +57,7 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
userSetting.Key = storepb.UserSettingKey(storepb.UserSettingKey_value[keyString])
|
userSetting.Key = storepb.UserSetting_Key(storepb.UserSetting_Key_value[keyString])
|
||||||
userSettingList = append(userSettingList, userSetting)
|
userSettingList = append(userSettingList, userSetting)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *store.UserSetting) (
|
||||||
func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting) ([]*store.UserSetting, error) {
|
func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting) ([]*store.UserSetting, error) {
|
||||||
where, args := []string{"1 = 1"}, []any{}
|
where, args := []string{"1 = 1"}, []any{}
|
||||||
|
|
||||||
if v := find.Key; v != storepb.UserSettingKey_USER_SETTING_KEY_UNSPECIFIED {
|
if v := find.Key; v != storepb.UserSetting_KEY_UNSPECIFIED {
|
||||||
where, args = append(where, "key = ?"), append(args, v.String())
|
where, args = append(where, "key = ?"), append(args, v.String())
|
||||||
}
|
}
|
||||||
if v := find.UserID; v != nil {
|
if v := find.UserID; v != nil {
|
||||||
|
@ -57,7 +57,7 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
userSetting.Key = storepb.UserSettingKey(storepb.UserSettingKey_value[keyString])
|
userSetting.Key = storepb.UserSetting_Key(storepb.UserSetting_Key_value[keyString])
|
||||||
userSettingList = append(userSettingList, userSetting)
|
userSettingList = append(userSettingList, userSetting)
|
||||||
}
|
}
|
||||||
if err := rows.Err(); err != nil {
|
if err := rows.Err(); err != nil {
|
||||||
|
|
|
@ -17,8 +17,8 @@ func TestUserSettingStore(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = ts.UpsertUserSetting(ctx, &storepb.UserSetting{
|
_, err = ts.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: user.ID,
|
UserId: user.ID,
|
||||||
Key: storepb.UserSettingKey_LOCALE,
|
Key: storepb.UserSetting_GENERAL,
|
||||||
Value: &storepb.UserSetting_Locale{Locale: "en"},
|
Value: &storepb.UserSetting_General{General: &storepb.GeneralUserSetting{Locale: "en"}},
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
list, err := ts.ListUserSettings(ctx, &store.FindUserSetting{})
|
list, err := ts.ListUserSettings(ctx, &store.FindUserSetting{})
|
||||||
|
|
|
@ -12,13 +12,13 @@ import (
|
||||||
|
|
||||||
type UserSetting struct {
|
type UserSetting struct {
|
||||||
UserID int32
|
UserID int32
|
||||||
Key storepb.UserSettingKey
|
Key storepb.UserSetting_Key
|
||||||
Value string
|
Value string
|
||||||
}
|
}
|
||||||
|
|
||||||
type FindUserSetting struct {
|
type FindUserSetting struct {
|
||||||
UserID *int32
|
UserID *int32
|
||||||
Key storepb.UserSettingKey
|
Key storepb.UserSetting_Key
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting) (*storepb.UserSetting, error) {
|
func (s *Store) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting) (*storepb.UserSetting, error) {
|
||||||
|
@ -93,7 +93,7 @@ func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*sto
|
||||||
func (s *Store) GetUserAccessTokens(ctx context.Context, userID int32) ([]*storepb.AccessTokensUserSetting_AccessToken, error) {
|
func (s *Store) GetUserAccessTokens(ctx context.Context, userID int32) ([]*storepb.AccessTokensUserSetting_AccessToken, error) {
|
||||||
userSetting, err := s.GetUserSetting(ctx, &FindUserSetting{
|
userSetting, err := s.GetUserSetting(ctx, &FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_ACCESS_TOKENS,
|
Key: storepb.UserSetting_ACCESS_TOKENS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -122,7 +122,7 @@ func (s *Store) RemoveUserAccessToken(ctx context.Context, userID int32, token s
|
||||||
|
|
||||||
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: userID,
|
UserId: userID,
|
||||||
Key: storepb.UserSettingKey_ACCESS_TOKENS,
|
Key: storepb.UserSetting_ACCESS_TOKENS,
|
||||||
Value: &storepb.UserSetting_AccessTokens{
|
Value: &storepb.UserSetting_AccessTokens{
|
||||||
AccessTokens: &storepb.AccessTokensUserSetting{
|
AccessTokens: &storepb.AccessTokensUserSetting{
|
||||||
AccessTokens: newAccessTokens,
|
AccessTokens: newAccessTokens,
|
||||||
|
@ -137,7 +137,7 @@ func (s *Store) RemoveUserAccessToken(ctx context.Context, userID int32, token s
|
||||||
func (s *Store) GetUserSessions(ctx context.Context, userID int32) ([]*storepb.SessionsUserSetting_Session, error) {
|
func (s *Store) GetUserSessions(ctx context.Context, userID int32) ([]*storepb.SessionsUserSetting_Session, error) {
|
||||||
userSetting, err := s.GetUserSetting(ctx, &FindUserSetting{
|
userSetting, err := s.GetUserSetting(ctx, &FindUserSetting{
|
||||||
UserID: &userID,
|
UserID: &userID,
|
||||||
Key: storepb.UserSettingKey_SESSIONS,
|
Key: storepb.UserSetting_SESSIONS,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -166,7 +166,7 @@ func (s *Store) RemoveUserSession(ctx context.Context, userID int32, sessionID s
|
||||||
|
|
||||||
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: userID,
|
UserId: userID,
|
||||||
Key: storepb.UserSettingKey_SESSIONS,
|
Key: storepb.UserSetting_SESSIONS,
|
||||||
Value: &storepb.UserSetting_Sessions{
|
Value: &storepb.UserSetting_Sessions{
|
||||||
Sessions: &storepb.SessionsUserSetting{
|
Sessions: &storepb.SessionsUserSetting{
|
||||||
Sessions: newSessions,
|
Sessions: newSessions,
|
||||||
|
@ -203,7 +203,7 @@ func (s *Store) AddUserSession(ctx context.Context, userID int32, session *store
|
||||||
|
|
||||||
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: userID,
|
UserId: userID,
|
||||||
Key: storepb.UserSettingKey_SESSIONS,
|
Key: storepb.UserSetting_SESSIONS,
|
||||||
Value: &storepb.UserSetting_Sessions{
|
Value: &storepb.UserSetting_Sessions{
|
||||||
Sessions: &storepb.SessionsUserSetting{
|
Sessions: &storepb.SessionsUserSetting{
|
||||||
Sessions: updatedSessions,
|
Sessions: updatedSessions,
|
||||||
|
@ -230,7 +230,7 @@ func (s *Store) UpdateUserSessionLastAccessed(ctx context.Context, userID int32,
|
||||||
|
|
||||||
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
_, err = s.UpsertUserSetting(ctx, &storepb.UserSetting{
|
||||||
UserId: userID,
|
UserId: userID,
|
||||||
Key: storepb.UserSettingKey_SESSIONS,
|
Key: storepb.UserSetting_SESSIONS,
|
||||||
Value: &storepb.UserSetting_Sessions{
|
Value: &storepb.UserSetting_Sessions{
|
||||||
Sessions: &storepb.SessionsUserSetting{
|
Sessions: &storepb.SessionsUserSetting{
|
||||||
Sessions: sessions,
|
Sessions: sessions,
|
||||||
|
@ -248,30 +248,30 @@ func convertUserSettingFromRaw(raw *UserSetting) (*storepb.UserSetting, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
switch raw.Key {
|
switch raw.Key {
|
||||||
case storepb.UserSettingKey_ACCESS_TOKENS:
|
case storepb.UserSetting_ACCESS_TOKENS:
|
||||||
accessTokensUserSetting := &storepb.AccessTokensUserSetting{}
|
accessTokensUserSetting := &storepb.AccessTokensUserSetting{}
|
||||||
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), accessTokensUserSetting); err != nil {
|
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), accessTokensUserSetting); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
userSetting.Value = &storepb.UserSetting_AccessTokens{AccessTokens: accessTokensUserSetting}
|
userSetting.Value = &storepb.UserSetting_AccessTokens{AccessTokens: accessTokensUserSetting}
|
||||||
case storepb.UserSettingKey_SESSIONS:
|
case storepb.UserSetting_SESSIONS:
|
||||||
sessionsUserSetting := &storepb.SessionsUserSetting{}
|
sessionsUserSetting := &storepb.SessionsUserSetting{}
|
||||||
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), sessionsUserSetting); err != nil {
|
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), sessionsUserSetting); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
userSetting.Value = &storepb.UserSetting_Sessions{Sessions: sessionsUserSetting}
|
userSetting.Value = &storepb.UserSetting_Sessions{Sessions: sessionsUserSetting}
|
||||||
case storepb.UserSettingKey_SHORTCUTS:
|
case storepb.UserSetting_SHORTCUTS:
|
||||||
shortcutsUserSetting := &storepb.ShortcutsUserSetting{}
|
shortcutsUserSetting := &storepb.ShortcutsUserSetting{}
|
||||||
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), shortcutsUserSetting); err != nil {
|
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), shortcutsUserSetting); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
userSetting.Value = &storepb.UserSetting_Shortcuts{Shortcuts: shortcutsUserSetting}
|
userSetting.Value = &storepb.UserSetting_Shortcuts{Shortcuts: shortcutsUserSetting}
|
||||||
case storepb.UserSettingKey_LOCALE:
|
case storepb.UserSetting_GENERAL:
|
||||||
userSetting.Value = &storepb.UserSetting_Locale{Locale: raw.Value}
|
generalUserSetting := &storepb.GeneralUserSetting{}
|
||||||
case storepb.UserSettingKey_APPEARANCE:
|
if err := protojsonUnmarshaler.Unmarshal([]byte(raw.Value), generalUserSetting); err != nil {
|
||||||
userSetting.Value = &storepb.UserSetting_Appearance{Appearance: raw.Value}
|
return nil, err
|
||||||
case storepb.UserSettingKey_MEMO_VISIBILITY:
|
}
|
||||||
userSetting.Value = &storepb.UserSetting_MemoVisibility{MemoVisibility: raw.Value}
|
userSetting.Value = &storepb.UserSetting_General{General: generalUserSetting}
|
||||||
default:
|
default:
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
@ -285,33 +285,34 @@ func convertUserSettingToRaw(userSetting *storepb.UserSetting) (*UserSetting, er
|
||||||
}
|
}
|
||||||
|
|
||||||
switch userSetting.Key {
|
switch userSetting.Key {
|
||||||
case storepb.UserSettingKey_ACCESS_TOKENS:
|
case storepb.UserSetting_ACCESS_TOKENS:
|
||||||
accessTokensUserSetting := userSetting.GetAccessTokens()
|
accessTokensUserSetting := userSetting.GetAccessTokens()
|
||||||
value, err := protojson.Marshal(accessTokensUserSetting)
|
value, err := protojson.Marshal(accessTokensUserSetting)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
raw.Value = string(value)
|
raw.Value = string(value)
|
||||||
case storepb.UserSettingKey_SESSIONS:
|
case storepb.UserSetting_SESSIONS:
|
||||||
sessionsUserSetting := userSetting.GetSessions()
|
sessionsUserSetting := userSetting.GetSessions()
|
||||||
value, err := protojson.Marshal(sessionsUserSetting)
|
value, err := protojson.Marshal(sessionsUserSetting)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
raw.Value = string(value)
|
raw.Value = string(value)
|
||||||
case storepb.UserSettingKey_SHORTCUTS:
|
case storepb.UserSetting_SHORTCUTS:
|
||||||
shortcutsUserSetting := userSetting.GetShortcuts()
|
shortcutsUserSetting := userSetting.GetShortcuts()
|
||||||
value, err := protojson.Marshal(shortcutsUserSetting)
|
value, err := protojson.Marshal(shortcutsUserSetting)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
raw.Value = string(value)
|
raw.Value = string(value)
|
||||||
case storepb.UserSettingKey_LOCALE:
|
case storepb.UserSetting_GENERAL:
|
||||||
raw.Value = userSetting.GetLocale()
|
generalUserSetting := userSetting.GetGeneral()
|
||||||
case storepb.UserSettingKey_APPEARANCE:
|
value, err := protojson.Marshal(generalUserSetting)
|
||||||
raw.Value = userSetting.GetAppearance()
|
if err != nil {
|
||||||
case storepb.UserSettingKey_MEMO_VISIBILITY:
|
return nil, err
|
||||||
raw.Value = userSetting.GetMemoVisibility()
|
}
|
||||||
|
raw.Value = string(value)
|
||||||
default:
|
default:
|
||||||
return nil, errors.Errorf("unsupported user setting key: %v", userSetting.Key)
|
return nil, errors.Errorf("unsupported user setting key: %v", userSetting.Key)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue