memos/server/router/api/v1/memo_view_icon.go

35 lines
1.3 KiB
Go

package v1
import (
v1pb "github.com/usememos/memos/proto/gen/api/v1"
storepb "github.com/usememos/memos/proto/gen/store"
)
func convertMemoViewIconFromStore(icon *storepb.MemoViewsUserSetting_MemoView_Icon) *v1pb.MemoView_Icon {
if icon == nil {
return nil
}
switch value := icon.Value.(type) {
case *storepb.MemoViewsUserSetting_MemoView_Icon_Emoji:
return &v1pb.MemoView_Icon{Value: &v1pb.MemoView_Icon_Emoji{Emoji: value.Emoji}}
case *storepb.MemoViewsUserSetting_MemoView_Icon_Lucide:
return &v1pb.MemoView_Icon{Value: &v1pb.MemoView_Icon_Lucide{Lucide: value.Lucide}}
default:
return nil
}
}
func convertMemoViewIconToStore(icon *v1pb.MemoView_Icon) *storepb.MemoViewsUserSetting_MemoView_Icon {
if icon == nil {
return nil
}
switch value := icon.Value.(type) {
case *v1pb.MemoView_Icon_Emoji:
return &storepb.MemoViewsUserSetting_MemoView_Icon{Value: &storepb.MemoViewsUserSetting_MemoView_Icon_Emoji{Emoji: value.Emoji}}
case *v1pb.MemoView_Icon_Lucide:
return &storepb.MemoViewsUserSetting_MemoView_Icon{Value: &storepb.MemoViewsUserSetting_MemoView_Icon_Lucide{Lucide: value.Lucide}}
default:
// Preserve an empty icon so validation rejects it instead of treating it as a reset.
return &storepb.MemoViewsUserSetting_MemoView_Icon{}
}
}