Commit 2f0b0e00 authored by Steven's avatar Steven

chore: remove node definition

parent 8ce6a32a
This diff is collapsed.
...@@ -501,26 +501,6 @@ paths: ...@@ -501,26 +501,6 @@ paths:
type: string type: string
tags: tags:
- MemoService - MemoService
/api/v2/memos:preview:
post:
summary: PreviewMemoContent previews memo content.
operationId: MemoService_PreviewMemoContent
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v2PreviewMemoContentResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: content
in: query
required: false
type: string
tags:
- MemoService
/api/v2/resources: /api/v2/resources:
get: get:
operationId: ResourceService_ListResources operationId: ResourceService_ListResources
...@@ -1291,13 +1271,6 @@ definitions: ...@@ -1291,13 +1271,6 @@ definitions:
$ref: '#/definitions/v2Memo' $ref: '#/definitions/v2Memo'
updateMask: updateMask:
type: string type: string
TableNodeRow:
type: object
properties:
cells:
type: array
items:
type: string
UserRole: UserRole:
type: string type: string
enum: enum:
...@@ -1443,50 +1416,6 @@ definitions: ...@@ -1443,50 +1416,6 @@ definitions:
format: date-time format: date-time
payload: payload:
$ref: '#/definitions/apiv2ActivityPayload' $ref: '#/definitions/apiv2ActivityPayload'
v2AutoLinkNode:
type: object
properties:
url:
type: string
isRawText:
type: boolean
v2BlockquoteNode:
type: object
properties:
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2BoldItalicNode:
type: object
properties:
symbol:
type: string
content:
type: string
v2BoldNode:
type: object
properties:
symbol:
type: string
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2CodeBlockNode:
type: object
properties:
language:
type: string
content:
type: string
v2CodeNode:
type: object
properties:
content:
type: string
v2CreateMemoCommentResponse: v2CreateMemoCommentResponse:
type: object type: object
properties: properties:
...@@ -1545,18 +1474,6 @@ definitions: ...@@ -1545,18 +1474,6 @@ definitions:
type: object type: object
v2DeleteWebhookResponse: v2DeleteWebhookResponse:
type: object type: object
v2EmbeddedContentNode:
type: object
properties:
resourceName:
type: string
params:
type: string
v2EscapingCharacterNode:
type: object
properties:
symbol:
type: string
v2ExportMemosResponse: v2ExportMemosResponse:
type: object type: object
properties: properties:
...@@ -1631,34 +1548,6 @@ definitions: ...@@ -1631,34 +1548,6 @@ definitions:
properties: properties:
workspaceProfile: workspaceProfile:
$ref: '#/definitions/v2WorkspaceProfile' $ref: '#/definitions/v2WorkspaceProfile'
v2HeadingNode:
type: object
properties:
level:
type: integer
format: int32
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2HighlightNode:
type: object
properties:
content:
type: string
v2HorizontalRuleNode:
type: object
properties:
symbol:
type: string
v2ImageNode:
type: object
properties:
altText:
type: string
url:
type: string
v2Inbox: v2Inbox:
type: object type: object
properties: properties:
...@@ -1697,22 +1586,6 @@ definitions: ...@@ -1697,22 +1586,6 @@ definitions:
- TYPE_MEMO_COMMENT - TYPE_MEMO_COMMENT
- TYPE_VERSION_UPDATE - TYPE_VERSION_UPDATE
default: TYPE_UNSPECIFIED default: TYPE_UNSPECIFIED
v2ItalicNode:
type: object
properties:
symbol:
type: string
content:
type: string
v2LineBreakNode:
type: object
v2LinkNode:
type: object
properties:
text:
type: string
url:
type: string
v2ListInboxesResponse: v2ListInboxesResponse:
type: object type: object
properties: properties:
...@@ -1798,16 +1671,6 @@ definitions: ...@@ -1798,16 +1671,6 @@ definitions:
items: items:
type: object type: object
$ref: '#/definitions/apiv2Webhook' $ref: '#/definitions/apiv2Webhook'
v2MathBlockNode:
type: object
properties:
content:
type: string
v2MathNode:
type: object
properties:
content:
type: string
v2Memo: v2Memo:
type: object type: object
properties: properties:
...@@ -1839,11 +1702,6 @@ definitions: ...@@ -1839,11 +1702,6 @@ definitions:
format: date-time format: date-time
content: content:
type: string type: string
nodes:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
visibility: visibility:
$ref: '#/definitions/v2Visibility' $ref: '#/definitions/v2Visibility'
pinned: pinned:
...@@ -1882,136 +1740,6 @@ definitions: ...@@ -1882,136 +1740,6 @@ definitions:
- REFERENCE - REFERENCE
- COMMENT - COMMENT
default: TYPE_UNSPECIFIED default: TYPE_UNSPECIFIED
v2Node:
type: object
properties:
type:
$ref: '#/definitions/v2NodeType'
lineBreakNode:
$ref: '#/definitions/v2LineBreakNode'
paragraphNode:
$ref: '#/definitions/v2ParagraphNode'
codeBlockNode:
$ref: '#/definitions/v2CodeBlockNode'
headingNode:
$ref: '#/definitions/v2HeadingNode'
horizontalRuleNode:
$ref: '#/definitions/v2HorizontalRuleNode'
blockquoteNode:
$ref: '#/definitions/v2BlockquoteNode'
orderedListNode:
$ref: '#/definitions/v2OrderedListNode'
unorderedListNode:
$ref: '#/definitions/v2UnorderedListNode'
taskListNode:
$ref: '#/definitions/v2TaskListNode'
mathBlockNode:
$ref: '#/definitions/v2MathBlockNode'
tableNode:
$ref: '#/definitions/v2TableNode'
embeddedContentNode:
$ref: '#/definitions/v2EmbeddedContentNode'
textNode:
$ref: '#/definitions/v2TextNode'
boldNode:
$ref: '#/definitions/v2BoldNode'
italicNode:
$ref: '#/definitions/v2ItalicNode'
boldItalicNode:
$ref: '#/definitions/v2BoldItalicNode'
codeNode:
$ref: '#/definitions/v2CodeNode'
imageNode:
$ref: '#/definitions/v2ImageNode'
linkNode:
$ref: '#/definitions/v2LinkNode'
autoLinkNode:
$ref: '#/definitions/v2AutoLinkNode'
tagNode:
$ref: '#/definitions/v2TagNode'
strikethroughNode:
$ref: '#/definitions/v2StrikethroughNode'
escapingCharacterNode:
$ref: '#/definitions/v2EscapingCharacterNode'
mathNode:
$ref: '#/definitions/v2MathNode'
highlightNode:
$ref: '#/definitions/v2HighlightNode'
subscriptNode:
$ref: '#/definitions/v2SubscriptNode'
superscriptNode:
$ref: '#/definitions/v2SuperscriptNode'
referencedContentNode:
$ref: '#/definitions/v2ReferencedContentNode'
v2NodeType:
type: string
enum:
- NODE_UNSPECIFIED
- LINE_BREAK
- PARAGRAPH
- CODE_BLOCK
- HEADING
- HORIZONTAL_RULE
- BLOCKQUOTE
- ORDERED_LIST
- UNORDERED_LIST
- TASK_LIST
- MATH_BLOCK
- TABLE
- EMBEDDED_CONTENT
- TEXT
- BOLD
- ITALIC
- BOLD_ITALIC
- CODE
- IMAGE
- LINK
- AUTO_LINK
- TAG
- STRIKETHROUGH
- ESCAPING_CHARACTER
- MATH
- HIGHLIGHT
- SUBSCRIPT
- SUPERSCRIPT
- REFERENCED_CONTENT
default: NODE_UNSPECIFIED
v2OrderedListNode:
type: object
properties:
number:
type: string
indent:
type: integer
format: int32
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2ParagraphNode:
type: object
properties:
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2PreviewMemoContentResponse:
type: object
properties:
nodes:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2ReferencedContentNode:
type: object
properties:
resourceName:
type: string
params:
type: string
v2RenameTagResponse: v2RenameTagResponse:
type: object type: object
properties: properties:
...@@ -2063,37 +1791,6 @@ definitions: ...@@ -2063,37 +1791,6 @@ definitions:
properties: properties:
user: user:
$ref: '#/definitions/v2User' $ref: '#/definitions/v2User'
v2StrikethroughNode:
type: object
properties:
content:
type: string
v2SubscriptNode:
type: object
properties:
content:
type: string
v2SuperscriptNode:
type: object
properties:
content:
type: string
v2TableNode:
type: object
properties:
header:
type: array
items:
type: string
delimiter:
type: array
items:
type: string
rows:
type: array
items:
type: object
$ref: '#/definitions/TableNodeRow'
v2Tag: v2Tag:
type: object type: object
properties: properties:
...@@ -2104,44 +1801,6 @@ definitions: ...@@ -2104,44 +1801,6 @@ definitions:
title: |- title: |-
The creator of tags. The creator of tags.
Format: users/{username} Format: users/{username}
v2TagNode:
type: object
properties:
content:
type: string
v2TaskListNode:
type: object
properties:
symbol:
type: string
indent:
type: integer
format: int32
complete:
type: boolean
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2TextNode:
type: object
properties:
content:
type: string
v2UnorderedListNode:
type: object
properties:
symbol:
type: string
indent:
type: integer
format: int32
children:
type: array
items:
type: object
$ref: '#/definitions/v2Node'
v2UpdateInboxResponse: v2UpdateInboxResponse:
type: object type: object
properties: properties:
......
package v2
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/yourselfhosted/gomark/ast"
apiv2pb "github.com/usememos/memos/proto/gen/api/v2"
)
func TestConvertFromASTNodes(t *testing.T) {
tests := []struct {
name string
rawNodes []ast.Node
want []*apiv2pb.Node
}{
{
name: "empty",
want: []*apiv2pb.Node{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := convertFromASTNodes(tt.rawNodes)
require.Equal(t, tt.want, got)
})
}
}
...@@ -14,7 +14,6 @@ import ( ...@@ -14,7 +14,6 @@ import (
"github.com/yourselfhosted/gomark/ast" "github.com/yourselfhosted/gomark/ast"
"github.com/yourselfhosted/gomark/parser" "github.com/yourselfhosted/gomark/parser"
"github.com/yourselfhosted/gomark/parser/tokenizer" "github.com/yourselfhosted/gomark/parser/tokenizer"
"github.com/yourselfhosted/gomark/restore"
"go.uber.org/zap" "go.uber.org/zap"
expr "google.golang.org/genproto/googleapis/api/expr/v1alpha1" expr "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
...@@ -267,10 +266,6 @@ func (s *APIV2Service) UpdateMemo(ctx context.Context, request *apiv2pb.UpdateMe ...@@ -267,10 +266,6 @@ func (s *APIV2Service) UpdateMemo(ctx context.Context, request *apiv2pb.UpdateMe
} }
} }
}) })
} else if path == "nodes" {
nodes := convertToASTNodes(request.Memo.Nodes)
content := restore.Restore(nodes)
update.Content = &content
} else if path == "resource_name" { } else if path == "resource_name" {
update.ResourceName = &request.Memo.Name update.ResourceName = &request.Memo.Name
if !util.ResourceNameMatcher.MatchString(*update.ResourceName) { if !util.ResourceNameMatcher.MatchString(*update.ResourceName) {
...@@ -549,18 +544,6 @@ func (s *APIV2Service) GetUserMemosStats(ctx context.Context, request *apiv2pb.G ...@@ -549,18 +544,6 @@ func (s *APIV2Service) GetUserMemosStats(ctx context.Context, request *apiv2pb.G
return response, nil return response, nil
} }
func (*APIV2Service) PreviewMemoContent(_ context.Context, request *apiv2pb.PreviewMemoContentRequest) (*apiv2pb.PreviewMemoContentResponse, error) {
rawNodes, err := parser.Parse(tokenizer.Tokenize(request.Content))
if err != nil {
return nil, errors.Wrap(err, "failed to parse memo content")
}
nodes := convertFromASTNodes(rawNodes)
return &apiv2pb.PreviewMemoContentResponse{
Nodes: nodes,
}, nil
}
func (s *APIV2Service) ExportMemos(request *apiv2pb.ExportMemosRequest, srv apiv2pb.MemoService_ExportMemosServer) error { func (s *APIV2Service) ExportMemos(request *apiv2pb.ExportMemosRequest, srv apiv2pb.MemoService_ExportMemosServer) error {
ctx := srv.Context() ctx := srv.Context()
fmt.Printf("%+v\n", ctx) fmt.Printf("%+v\n", ctx)
...@@ -617,10 +600,6 @@ func (s *APIV2Service) ExportMemos(request *apiv2pb.ExportMemosRequest, srv apiv ...@@ -617,10 +600,6 @@ func (s *APIV2Service) ExportMemos(request *apiv2pb.ExportMemosRequest, srv apiv
} }
func (s *APIV2Service) convertMemoFromStore(ctx context.Context, memo *store.Memo) (*apiv2pb.Memo, error) { func (s *APIV2Service) convertMemoFromStore(ctx context.Context, memo *store.Memo) (*apiv2pb.Memo, error) {
rawNodes, err := parser.Parse(tokenizer.Tokenize(memo.Content))
if err != nil {
return nil, errors.Wrap(err, "failed to parse memo content")
}
displayTs := memo.CreatedTs displayTs := memo.CreatedTs
if displayWithUpdatedTs, err := s.getMemoDisplayWithUpdatedTsSettingValue(ctx); err == nil && displayWithUpdatedTs { if displayWithUpdatedTs, err := s.getMemoDisplayWithUpdatedTsSettingValue(ctx); err == nil && displayWithUpdatedTs {
displayTs = memo.UpdatedTs displayTs = memo.UpdatedTs
...@@ -651,7 +630,6 @@ func (s *APIV2Service) convertMemoFromStore(ctx context.Context, memo *store.Mem ...@@ -651,7 +630,6 @@ func (s *APIV2Service) convertMemoFromStore(ctx context.Context, memo *store.Mem
UpdateTime: timestamppb.New(time.Unix(memo.UpdatedTs, 0)), UpdateTime: timestamppb.New(time.Unix(memo.UpdatedTs, 0)),
DisplayTime: timestamppb.New(time.Unix(displayTs, 0)), DisplayTime: timestamppb.New(time.Unix(displayTs, 0)),
Content: memo.Content, Content: memo.Content,
Nodes: convertFromASTNodes(rawNodes),
Visibility: convertVisibilityFromStore(memo.Visibility), Visibility: convertVisibilityFromStore(memo.Visibility),
Pinned: memo.Pinned, Pinned: memo.Pinned,
ParentId: memo.ParentID, ParentId: memo.ParentID,
......
...@@ -2,196 +2,8 @@ package v2 ...@@ -2,196 +2,8 @@ package v2
import ( import (
"github.com/yourselfhosted/gomark/ast" "github.com/yourselfhosted/gomark/ast"
apiv2pb "github.com/usememos/memos/proto/gen/api/v2"
) )
func convertFromASTNodes(rawNodes []ast.Node) []*apiv2pb.Node {
nodes := []*apiv2pb.Node{}
for _, rawNode := range rawNodes {
node := convertFromASTNode(rawNode)
nodes = append(nodes, node)
}
return nodes
}
func convertFromASTNode(rawNode ast.Node) *apiv2pb.Node {
node := &apiv2pb.Node{
Type: apiv2pb.NodeType(rawNode.Type()),
}
switch n := rawNode.(type) {
case *ast.LineBreak:
node.Node = &apiv2pb.Node_LineBreakNode{}
case *ast.Paragraph:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_ParagraphNode{ParagraphNode: &apiv2pb.ParagraphNode{Children: children}}
case *ast.CodeBlock:
node.Node = &apiv2pb.Node_CodeBlockNode{CodeBlockNode: &apiv2pb.CodeBlockNode{Language: n.Language, Content: n.Content}}
case *ast.Heading:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_HeadingNode{HeadingNode: &apiv2pb.HeadingNode{Level: int32(n.Level), Children: children}}
case *ast.HorizontalRule:
node.Node = &apiv2pb.Node_HorizontalRuleNode{HorizontalRuleNode: &apiv2pb.HorizontalRuleNode{Symbol: n.Symbol}}
case *ast.Blockquote:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_BlockquoteNode{BlockquoteNode: &apiv2pb.BlockquoteNode{Children: children}}
case *ast.OrderedList:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_OrderedListNode{OrderedListNode: &apiv2pb.OrderedListNode{Number: n.Number, Indent: int32(n.Indent), Children: children}}
case *ast.UnorderedList:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_UnorderedListNode{UnorderedListNode: &apiv2pb.UnorderedListNode{Symbol: n.Symbol, Indent: int32(n.Indent), Children: children}}
case *ast.TaskList:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_TaskListNode{TaskListNode: &apiv2pb.TaskListNode{Symbol: n.Symbol, Indent: int32(n.Indent), Complete: n.Complete, Children: children}}
case *ast.MathBlock:
node.Node = &apiv2pb.Node_MathBlockNode{MathBlockNode: &apiv2pb.MathBlockNode{Content: n.Content}}
case *ast.Table:
node.Node = &apiv2pb.Node_TableNode{TableNode: convertTableFromASTNode(n)}
case *ast.EmbeddedContent:
node.Node = &apiv2pb.Node_EmbeddedContentNode{EmbeddedContentNode: &apiv2pb.EmbeddedContentNode{ResourceName: n.ResourceName, Params: n.Params}}
case *ast.Text:
node.Node = &apiv2pb.Node_TextNode{TextNode: &apiv2pb.TextNode{Content: n.Content}}
case *ast.Bold:
children := convertFromASTNodes(n.Children)
node.Node = &apiv2pb.Node_BoldNode{BoldNode: &apiv2pb.BoldNode{Symbol: n.Symbol, Children: children}}
case *ast.Italic:
node.Node = &apiv2pb.Node_ItalicNode{ItalicNode: &apiv2pb.ItalicNode{Symbol: n.Symbol, Content: n.Content}}
case *ast.BoldItalic:
node.Node = &apiv2pb.Node_BoldItalicNode{BoldItalicNode: &apiv2pb.BoldItalicNode{Symbol: n.Symbol, Content: n.Content}}
case *ast.Code:
node.Node = &apiv2pb.Node_CodeNode{CodeNode: &apiv2pb.CodeNode{Content: n.Content}}
case *ast.Image:
node.Node = &apiv2pb.Node_ImageNode{ImageNode: &apiv2pb.ImageNode{AltText: n.AltText, Url: n.URL}}
case *ast.Link:
node.Node = &apiv2pb.Node_LinkNode{LinkNode: &apiv2pb.LinkNode{Text: n.Text, Url: n.URL}}
case *ast.AutoLink:
node.Node = &apiv2pb.Node_AutoLinkNode{AutoLinkNode: &apiv2pb.AutoLinkNode{Url: n.URL, IsRawText: n.IsRawText}}
case *ast.Tag:
node.Node = &apiv2pb.Node_TagNode{TagNode: &apiv2pb.TagNode{Content: n.Content}}
case *ast.Strikethrough:
node.Node = &apiv2pb.Node_StrikethroughNode{StrikethroughNode: &apiv2pb.StrikethroughNode{Content: n.Content}}
case *ast.EscapingCharacter:
node.Node = &apiv2pb.Node_EscapingCharacterNode{EscapingCharacterNode: &apiv2pb.EscapingCharacterNode{Symbol: n.Symbol}}
case *ast.Math:
node.Node = &apiv2pb.Node_MathNode{MathNode: &apiv2pb.MathNode{Content: n.Content}}
case *ast.Highlight:
node.Node = &apiv2pb.Node_HighlightNode{HighlightNode: &apiv2pb.HighlightNode{Content: n.Content}}
case *ast.Subscript:
node.Node = &apiv2pb.Node_SubscriptNode{SubscriptNode: &apiv2pb.SubscriptNode{Content: n.Content}}
case *ast.Superscript:
node.Node = &apiv2pb.Node_SuperscriptNode{SuperscriptNode: &apiv2pb.SuperscriptNode{Content: n.Content}}
case *ast.ReferencedContent:
node.Node = &apiv2pb.Node_ReferencedContentNode{ReferencedContentNode: &apiv2pb.ReferencedContentNode{ResourceName: n.ResourceName, Params: n.Params}}
default:
node.Node = &apiv2pb.Node_TextNode{TextNode: &apiv2pb.TextNode{}}
}
return node
}
func convertTableFromASTNode(node *ast.Table) *apiv2pb.TableNode {
table := &apiv2pb.TableNode{
Header: node.Header,
Delimiter: node.Delimiter,
}
for _, row := range node.Rows {
table.Rows = append(table.Rows, &apiv2pb.TableNode_Row{Cells: row})
}
return table
}
func convertToASTNodes(nodes []*apiv2pb.Node) []ast.Node {
rawNodes := []ast.Node{}
for _, node := range nodes {
rawNode := convertToASTNode(node)
rawNodes = append(rawNodes, rawNode)
}
return rawNodes
}
func convertToASTNode(node *apiv2pb.Node) ast.Node {
switch n := node.Node.(type) {
case *apiv2pb.Node_LineBreakNode:
return &ast.LineBreak{}
case *apiv2pb.Node_ParagraphNode:
children := convertToASTNodes(n.ParagraphNode.Children)
return &ast.Paragraph{Children: children}
case *apiv2pb.Node_CodeBlockNode:
return &ast.CodeBlock{Language: n.CodeBlockNode.Language, Content: n.CodeBlockNode.Content}
case *apiv2pb.Node_HeadingNode:
children := convertToASTNodes(n.HeadingNode.Children)
return &ast.Heading{Level: int(n.HeadingNode.Level), Children: children}
case *apiv2pb.Node_HorizontalRuleNode:
return &ast.HorizontalRule{Symbol: n.HorizontalRuleNode.Symbol}
case *apiv2pb.Node_BlockquoteNode:
children := convertToASTNodes(n.BlockquoteNode.Children)
return &ast.Blockquote{Children: children}
case *apiv2pb.Node_OrderedListNode:
children := convertToASTNodes(n.OrderedListNode.Children)
return &ast.OrderedList{Number: n.OrderedListNode.Number, Indent: int(n.OrderedListNode.Indent), Children: children}
case *apiv2pb.Node_UnorderedListNode:
children := convertToASTNodes(n.UnorderedListNode.Children)
return &ast.UnorderedList{Symbol: n.UnorderedListNode.Symbol, Indent: int(n.UnorderedListNode.Indent), Children: children}
case *apiv2pb.Node_TaskListNode:
children := convertToASTNodes(n.TaskListNode.Children)
return &ast.TaskList{Symbol: n.TaskListNode.Symbol, Indent: int(n.TaskListNode.Indent), Complete: n.TaskListNode.Complete, Children: children}
case *apiv2pb.Node_MathBlockNode:
return &ast.MathBlock{Content: n.MathBlockNode.Content}
case *apiv2pb.Node_TableNode:
return convertTableToASTNode(node)
case *apiv2pb.Node_EmbeddedContentNode:
return &ast.EmbeddedContent{ResourceName: n.EmbeddedContentNode.ResourceName, Params: n.EmbeddedContentNode.Params}
case *apiv2pb.Node_TextNode:
return &ast.Text{Content: n.TextNode.Content}
case *apiv2pb.Node_BoldNode:
children := convertToASTNodes(n.BoldNode.Children)
return &ast.Bold{Symbol: n.BoldNode.Symbol, Children: children}
case *apiv2pb.Node_ItalicNode:
return &ast.Italic{Symbol: n.ItalicNode.Symbol, Content: n.ItalicNode.Content}
case *apiv2pb.Node_BoldItalicNode:
return &ast.BoldItalic{Symbol: n.BoldItalicNode.Symbol, Content: n.BoldItalicNode.Content}
case *apiv2pb.Node_CodeNode:
return &ast.Code{Content: n.CodeNode.Content}
case *apiv2pb.Node_ImageNode:
return &ast.Image{AltText: n.ImageNode.AltText, URL: n.ImageNode.Url}
case *apiv2pb.Node_LinkNode:
return &ast.Link{Text: n.LinkNode.Text, URL: n.LinkNode.Url}
case *apiv2pb.Node_AutoLinkNode:
return &ast.AutoLink{URL: n.AutoLinkNode.Url, IsRawText: n.AutoLinkNode.IsRawText}
case *apiv2pb.Node_TagNode:
return &ast.Tag{Content: n.TagNode.Content}
case *apiv2pb.Node_StrikethroughNode:
return &ast.Strikethrough{Content: n.StrikethroughNode.Content}
case *apiv2pb.Node_EscapingCharacterNode:
return &ast.EscapingCharacter{Symbol: n.EscapingCharacterNode.Symbol}
case *apiv2pb.Node_MathNode:
return &ast.Math{Content: n.MathNode.Content}
case *apiv2pb.Node_HighlightNode:
return &ast.Highlight{Content: n.HighlightNode.Content}
case *apiv2pb.Node_SubscriptNode:
return &ast.Subscript{Content: n.SubscriptNode.Content}
case *apiv2pb.Node_SuperscriptNode:
return &ast.Superscript{Content: n.SuperscriptNode.Content}
case *apiv2pb.Node_ReferencedContentNode:
return &ast.ReferencedContent{ResourceName: n.ReferencedContentNode.ResourceName, Params: n.ReferencedContentNode.Params}
default:
return &ast.Text{}
}
}
func convertTableToASTNode(node *apiv2pb.Node) *ast.Table {
table := &ast.Table{
Header: node.GetTableNode().Header,
Delimiter: node.GetTableNode().Delimiter,
}
for _, row := range node.GetTableNode().Rows {
table.Rows = append(table.Rows, row.Cells)
}
return table
}
func traverseASTNodes(nodes []ast.Node, fn func(ast.Node)) { func traverseASTNodes(nodes []ast.Node, fn func(ast.Node)) {
for _, node := range nodes { for _, node := range nodes {
fn(node) fn(node)
......
...@@ -25,7 +25,7 @@ require ( ...@@ -25,7 +25,7 @@ require (
github.com/spf13/viper v1.18.2 github.com/spf13/viper v1.18.2
github.com/stretchr/testify v1.8.4 github.com/stretchr/testify v1.8.4
github.com/swaggo/swag v1.16.2 github.com/swaggo/swag v1.16.2
github.com/yourselfhosted/gomark v0.0.0-20240131105606-5333db6f5616 github.com/yourselfhosted/gomark v0.0.0-20240131133943-224a9a6d90fc
go.uber.org/zap v1.26.0 go.uber.org/zap v1.26.0
golang.org/x/crypto v0.18.0 golang.org/x/crypto v0.18.0
golang.org/x/exp v0.0.0-20240119083558-1b970713d09a golang.org/x/exp v0.0.0-20240119083558-1b970713d09a
......
...@@ -464,8 +464,8 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC ...@@ -464,8 +464,8 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/yourselfhosted/gomark v0.0.0-20240131105606-5333db6f5616 h1:0CGKgsvZTYP54XexlxytlNesG0wNITs65B6yB1WfEy8= github.com/yourselfhosted/gomark v0.0.0-20240131133943-224a9a6d90fc h1:JDF1cKZQjAH6CB2dViFscv88jS4LFt+BawCNDY+zpms=
github.com/yourselfhosted/gomark v0.0.0-20240131105606-5333db6f5616/go.mod h1:3CnrFK/H9I9D3ZHgjHQNcsh848Fv/FJUoC2vDMLYtt4= github.com/yourselfhosted/gomark v0.0.0-20240131133943-224a9a6d90fc/go.mod h1:dfl9FHGIw1oISjPc16u8n6/H/dngiVfdVRtS5+WJ4Js=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
......
...@@ -4,7 +4,6 @@ package memos.api.v2; ...@@ -4,7 +4,6 @@ package memos.api.v2;
import "api/v2/common.proto"; import "api/v2/common.proto";
import "api/v2/memo_relation_service.proto"; import "api/v2/memo_relation_service.proto";
import "api/v2/node.proto";
import "api/v2/resource_service.proto"; import "api/v2/resource_service.proto";
import "google/api/annotations.proto"; import "google/api/annotations.proto";
import "google/api/client.proto"; import "google/api/client.proto";
...@@ -85,10 +84,6 @@ service MemoService { ...@@ -85,10 +84,6 @@ service MemoService {
option (google.api.http) = {get: "/api/v2/memos/{id}/comments"}; option (google.api.http) = {get: "/api/v2/memos/{id}/comments"};
option (google.api.method_signature) = "id"; option (google.api.method_signature) = "id";
} }
// PreviewMemoContent previews memo content.
rpc PreviewMemoContent(PreviewMemoContentRequest) returns (PreviewMemoContentResponse) {
option (google.api.http) = {post: "/api/v2/memos:preview"};
}
// ExportMemos exports memos. // ExportMemos exports memos.
rpc ExportMemos(ExportMemosRequest) returns (stream ExportMemosResponse) { rpc ExportMemos(ExportMemosRequest) returns (stream ExportMemosResponse) {
option (google.api.http) = {post: "/api/v2/memos:export"}; option (google.api.http) = {post: "/api/v2/memos:export"};
...@@ -133,17 +128,15 @@ message Memo { ...@@ -133,17 +128,15 @@ message Memo {
string content = 9; string content = 9;
repeated Node nodes = 10; Visibility visibility = 10;
Visibility visibility = 11;
bool pinned = 12; bool pinned = 11;
optional int32 parent_id = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; optional int32 parent_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated Resource resources = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; repeated Resource resources = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated MemoRelation relations = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; repeated MemoRelation relations = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
} }
message CreateMemoRequest { message CreateMemoRequest {
...@@ -282,14 +275,6 @@ message GetUserMemosStatsResponse { ...@@ -282,14 +275,6 @@ message GetUserMemosStatsResponse {
map<string, int32> stats = 1; map<string, int32> stats = 1;
} }
message PreviewMemoContentRequest {
string content = 1;
}
message PreviewMemoContentResponse {
repeated Node nodes = 1;
}
message ExportMemosRequest { message ExportMemosRequest {
// Same as ListMemosRequest.filter // Same as ListMemosRequest.filter
string filter = 1; string filter = 1;
......
syntax = "proto3";
package memos.api.v2;
option go_package = "gen/api/v2";
enum NodeType {
NODE_UNSPECIFIED = 0;
LINE_BREAK = 1;
PARAGRAPH = 2;
CODE_BLOCK = 3;
HEADING = 4;
HORIZONTAL_RULE = 5;
BLOCKQUOTE = 6;
ORDERED_LIST = 7;
UNORDERED_LIST = 8;
TASK_LIST = 9;
MATH_BLOCK = 10;
TABLE = 11;
EMBEDDED_CONTENT = 12;
TEXT = 13;
BOLD = 14;
ITALIC = 15;
BOLD_ITALIC = 16;
CODE = 17;
IMAGE = 18;
LINK = 19;
AUTO_LINK = 20;
TAG = 21;
STRIKETHROUGH = 22;
ESCAPING_CHARACTER = 23;
MATH = 24;
HIGHLIGHT = 25;
SUBSCRIPT = 26;
SUPERSCRIPT = 27;
REFERENCED_CONTENT = 28;
}
message Node {
NodeType type = 1;
oneof node {
LineBreakNode line_break_node = 2;
ParagraphNode paragraph_node = 3;
CodeBlockNode code_block_node = 4;
HeadingNode heading_node = 5;
HorizontalRuleNode horizontal_rule_node = 6;
BlockquoteNode blockquote_node = 7;
OrderedListNode ordered_list_node = 8;
UnorderedListNode unordered_list_node = 9;
TaskListNode task_list_node = 10;
MathBlockNode math_block_node = 11;
TableNode table_node = 12;
EmbeddedContentNode embedded_content_node = 13;
TextNode text_node = 14;
BoldNode bold_node = 15;
ItalicNode italic_node = 16;
BoldItalicNode bold_italic_node = 17;
CodeNode code_node = 18;
ImageNode image_node = 19;
LinkNode link_node = 20;
AutoLinkNode auto_link_node = 21;
TagNode tag_node = 22;
StrikethroughNode strikethrough_node = 23;
EscapingCharacterNode escaping_character_node = 24;
MathNode math_node = 25;
HighlightNode highlight_node = 26;
SubscriptNode subscript_node = 27;
SuperscriptNode superscript_node = 28;
ReferencedContentNode referenced_content_node = 29;
}
}
message LineBreakNode {}
message ParagraphNode {
repeated Node children = 1;
}
message CodeBlockNode {
string language = 1;
string content = 2;
}
message HeadingNode {
int32 level = 1;
repeated Node children = 2;
}
message HorizontalRuleNode {
string symbol = 1;
}
message BlockquoteNode {
repeated Node children = 1;
}
message OrderedListNode {
string number = 1;
int32 indent = 2;
repeated Node children = 3;
}
message UnorderedListNode {
string symbol = 1;
int32 indent = 2;
repeated Node children = 3;
}
message TaskListNode {
string symbol = 1;
int32 indent = 2;
bool complete = 3;
repeated Node children = 4;
}
message MathBlockNode {
string content = 1;
}
message TableNode {
repeated string header = 1;
repeated string delimiter = 2;
message Row {
repeated string cells = 1;
}
repeated Row rows = 3;
}
message EmbeddedContentNode {
string resource_name = 1;
string params = 2;
}
message TextNode {
string content = 1;
}
message BoldNode {
string symbol = 1;
repeated Node children = 2;
}
message ItalicNode {
string symbol = 1;
string content = 2;
}
message BoldItalicNode {
string symbol = 1;
string content = 2;
}
message CodeNode {
string content = 1;
}
message ImageNode {
string alt_text = 1;
string url = 2;
}
message LinkNode {
string text = 1;
string url = 2;
}
message AutoLinkNode {
string url = 1;
bool is_raw_text = 2;
}
message TagNode {
string content = 1;
}
message StrikethroughNode {
string content = 1;
}
message EscapingCharacterNode {
string symbol = 1;
}
message MathNode {
string content = 1;
}
message HighlightNode {
string content = 1;
}
message SubscriptNode {
string content = 1;
}
message SuperscriptNode {
string content = 1;
}
message ReferencedContentNode {
string resource_name = 1;
string params = 2;
}
This diff is collapsed.
This diff is collapsed.
...@@ -687,42 +687,6 @@ func local_request_MemoService_ListMemoComments_0(ctx context.Context, marshaler ...@@ -687,42 +687,6 @@ func local_request_MemoService_ListMemoComments_0(ctx context.Context, marshaler
} }
var (
filter_MemoService_PreviewMemoContent_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_MemoService_PreviewMemoContent_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq PreviewMemoContentRequest
var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_PreviewMemoContent_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.PreviewMemoContent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_MemoService_PreviewMemoContent_0(ctx context.Context, marshaler runtime.Marshaler, server MemoServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq PreviewMemoContentRequest
var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_PreviewMemoContent_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.PreviewMemoContent(ctx, &protoReq)
return msg, metadata, err
}
var ( var (
filter_MemoService_ExportMemos_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} filter_MemoService_ExportMemos_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
) )
...@@ -1093,31 +1057,6 @@ func RegisterMemoServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ...@@ -1093,31 +1057,6 @@ func RegisterMemoServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux
}) })
mux.Handle("POST", pattern_MemoService_PreviewMemoContent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v2.MemoService/PreviewMemoContent", runtime.WithHTTPPathPattern("/api/v2/memos:preview"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_MemoService_PreviewMemoContent_0(annotatedContext, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
if err != nil {
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
forward_MemoService_PreviewMemoContent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_MemoService_ExportMemos_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("POST", pattern_MemoService_ExportMemos_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
_, outboundMarshaler := runtime.MarshalerForRequest(mux, req) _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
...@@ -1455,28 +1394,6 @@ func RegisterMemoServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux ...@@ -1455,28 +1394,6 @@ func RegisterMemoServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux
}) })
mux.Handle("POST", pattern_MemoService_PreviewMemoContent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
var err error
var annotatedContext context.Context
annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/memos.api.v2.MemoService/PreviewMemoContent", runtime.WithHTTPPathPattern("/api/v2/memos:preview"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_MemoService_PreviewMemoContent_0(annotatedContext, inboundMarshaler, client, req, pathParams)
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
if err != nil {
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
forward_MemoService_PreviewMemoContent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_MemoService_ExportMemos_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("POST", pattern_MemoService_ExportMemos_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
...@@ -1549,8 +1466,6 @@ var ( ...@@ -1549,8 +1466,6 @@ var (
pattern_MemoService_ListMemoComments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v2", "memos", "id", "comments"}, "")) pattern_MemoService_ListMemoComments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v2", "memos", "id", "comments"}, ""))
pattern_MemoService_PreviewMemoContent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "memos"}, "preview"))
pattern_MemoService_ExportMemos_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "memos"}, "export")) pattern_MemoService_ExportMemos_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v2", "memos"}, "export"))
pattern_MemoService_GetUserMemosStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v2", "memos", "stats"}, "")) pattern_MemoService_GetUserMemosStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v2", "memos", "stats"}, ""))
...@@ -1581,8 +1496,6 @@ var ( ...@@ -1581,8 +1496,6 @@ var (
forward_MemoService_ListMemoComments_0 = runtime.ForwardResponseMessage forward_MemoService_ListMemoComments_0 = runtime.ForwardResponseMessage
forward_MemoService_PreviewMemoContent_0 = runtime.ForwardResponseMessage
forward_MemoService_ExportMemos_0 = runtime.ForwardResponseStream forward_MemoService_ExportMemos_0 = runtime.ForwardResponseStream
forward_MemoService_GetUserMemosStats_0 = runtime.ForwardResponseMessage forward_MemoService_GetUserMemosStats_0 = runtime.ForwardResponseMessage
......
...@@ -31,7 +31,6 @@ const ( ...@@ -31,7 +31,6 @@ const (
MemoService_ListMemoRelations_FullMethodName = "/memos.api.v2.MemoService/ListMemoRelations" MemoService_ListMemoRelations_FullMethodName = "/memos.api.v2.MemoService/ListMemoRelations"
MemoService_CreateMemoComment_FullMethodName = "/memos.api.v2.MemoService/CreateMemoComment" MemoService_CreateMemoComment_FullMethodName = "/memos.api.v2.MemoService/CreateMemoComment"
MemoService_ListMemoComments_FullMethodName = "/memos.api.v2.MemoService/ListMemoComments" MemoService_ListMemoComments_FullMethodName = "/memos.api.v2.MemoService/ListMemoComments"
MemoService_PreviewMemoContent_FullMethodName = "/memos.api.v2.MemoService/PreviewMemoContent"
MemoService_ExportMemos_FullMethodName = "/memos.api.v2.MemoService/ExportMemos" MemoService_ExportMemos_FullMethodName = "/memos.api.v2.MemoService/ExportMemos"
MemoService_GetUserMemosStats_FullMethodName = "/memos.api.v2.MemoService/GetUserMemosStats" MemoService_GetUserMemosStats_FullMethodName = "/memos.api.v2.MemoService/GetUserMemosStats"
) )
...@@ -64,8 +63,6 @@ type MemoServiceClient interface { ...@@ -64,8 +63,6 @@ type MemoServiceClient interface {
CreateMemoComment(ctx context.Context, in *CreateMemoCommentRequest, opts ...grpc.CallOption) (*CreateMemoCommentResponse, error) CreateMemoComment(ctx context.Context, in *CreateMemoCommentRequest, opts ...grpc.CallOption) (*CreateMemoCommentResponse, error)
// ListMemoComments lists comments for a memo. // ListMemoComments lists comments for a memo.
ListMemoComments(ctx context.Context, in *ListMemoCommentsRequest, opts ...grpc.CallOption) (*ListMemoCommentsResponse, error) ListMemoComments(ctx context.Context, in *ListMemoCommentsRequest, opts ...grpc.CallOption) (*ListMemoCommentsResponse, error)
// PreviewMemoContent previews memo content.
PreviewMemoContent(ctx context.Context, in *PreviewMemoContentRequest, opts ...grpc.CallOption) (*PreviewMemoContentResponse, error)
// ExportMemos exports memos. // ExportMemos exports memos.
ExportMemos(ctx context.Context, in *ExportMemosRequest, opts ...grpc.CallOption) (MemoService_ExportMemosClient, error) ExportMemos(ctx context.Context, in *ExportMemosRequest, opts ...grpc.CallOption) (MemoService_ExportMemosClient, error)
// GetUserMemosStats gets stats of memos for a user. // GetUserMemosStats gets stats of memos for a user.
...@@ -188,15 +185,6 @@ func (c *memoServiceClient) ListMemoComments(ctx context.Context, in *ListMemoCo ...@@ -188,15 +185,6 @@ func (c *memoServiceClient) ListMemoComments(ctx context.Context, in *ListMemoCo
return out, nil return out, nil
} }
func (c *memoServiceClient) PreviewMemoContent(ctx context.Context, in *PreviewMemoContentRequest, opts ...grpc.CallOption) (*PreviewMemoContentResponse, error) {
out := new(PreviewMemoContentResponse)
err := c.cc.Invoke(ctx, MemoService_PreviewMemoContent_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *memoServiceClient) ExportMemos(ctx context.Context, in *ExportMemosRequest, opts ...grpc.CallOption) (MemoService_ExportMemosClient, error) { func (c *memoServiceClient) ExportMemos(ctx context.Context, in *ExportMemosRequest, opts ...grpc.CallOption) (MemoService_ExportMemosClient, error) {
stream, err := c.cc.NewStream(ctx, &MemoService_ServiceDesc.Streams[0], MemoService_ExportMemos_FullMethodName, opts...) stream, err := c.cc.NewStream(ctx, &MemoService_ServiceDesc.Streams[0], MemoService_ExportMemos_FullMethodName, opts...)
if err != nil { if err != nil {
...@@ -266,8 +254,6 @@ type MemoServiceServer interface { ...@@ -266,8 +254,6 @@ type MemoServiceServer interface {
CreateMemoComment(context.Context, *CreateMemoCommentRequest) (*CreateMemoCommentResponse, error) CreateMemoComment(context.Context, *CreateMemoCommentRequest) (*CreateMemoCommentResponse, error)
// ListMemoComments lists comments for a memo. // ListMemoComments lists comments for a memo.
ListMemoComments(context.Context, *ListMemoCommentsRequest) (*ListMemoCommentsResponse, error) ListMemoComments(context.Context, *ListMemoCommentsRequest) (*ListMemoCommentsResponse, error)
// PreviewMemoContent previews memo content.
PreviewMemoContent(context.Context, *PreviewMemoContentRequest) (*PreviewMemoContentResponse, error)
// ExportMemos exports memos. // ExportMemos exports memos.
ExportMemos(*ExportMemosRequest, MemoService_ExportMemosServer) error ExportMemos(*ExportMemosRequest, MemoService_ExportMemosServer) error
// GetUserMemosStats gets stats of memos for a user. // GetUserMemosStats gets stats of memos for a user.
...@@ -315,9 +301,6 @@ func (UnimplementedMemoServiceServer) CreateMemoComment(context.Context, *Create ...@@ -315,9 +301,6 @@ func (UnimplementedMemoServiceServer) CreateMemoComment(context.Context, *Create
func (UnimplementedMemoServiceServer) ListMemoComments(context.Context, *ListMemoCommentsRequest) (*ListMemoCommentsResponse, error) { func (UnimplementedMemoServiceServer) ListMemoComments(context.Context, *ListMemoCommentsRequest) (*ListMemoCommentsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListMemoComments not implemented") return nil, status.Errorf(codes.Unimplemented, "method ListMemoComments not implemented")
} }
func (UnimplementedMemoServiceServer) PreviewMemoContent(context.Context, *PreviewMemoContentRequest) (*PreviewMemoContentResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method PreviewMemoContent not implemented")
}
func (UnimplementedMemoServiceServer) ExportMemos(*ExportMemosRequest, MemoService_ExportMemosServer) error { func (UnimplementedMemoServiceServer) ExportMemos(*ExportMemosRequest, MemoService_ExportMemosServer) error {
return status.Errorf(codes.Unimplemented, "method ExportMemos not implemented") return status.Errorf(codes.Unimplemented, "method ExportMemos not implemented")
} }
...@@ -553,24 +536,6 @@ func _MemoService_ListMemoComments_Handler(srv interface{}, ctx context.Context, ...@@ -553,24 +536,6 @@ func _MemoService_ListMemoComments_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _MemoService_PreviewMemoContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PreviewMemoContentRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MemoServiceServer).PreviewMemoContent(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: MemoService_PreviewMemoContent_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MemoServiceServer).PreviewMemoContent(ctx, req.(*PreviewMemoContentRequest))
}
return interceptor(ctx, in, info, handler)
}
func _MemoService_ExportMemos_Handler(srv interface{}, stream grpc.ServerStream) error { func _MemoService_ExportMemos_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(ExportMemosRequest) m := new(ExportMemosRequest)
if err := stream.RecvMsg(m); err != nil { if err := stream.RecvMsg(m); err != nil {
...@@ -665,10 +630,6 @@ var MemoService_ServiceDesc = grpc.ServiceDesc{ ...@@ -665,10 +630,6 @@ var MemoService_ServiceDesc = grpc.ServiceDesc{
MethodName: "ListMemoComments", MethodName: "ListMemoComments",
Handler: _MemoService_ListMemoComments_Handler, Handler: _MemoService_ListMemoComments_Handler,
}, },
{
MethodName: "PreviewMemoContent",
Handler: _MemoService_PreviewMemoContent_Handler,
},
{ {
MethodName: "GetUserMemosStats", MethodName: "GetUserMemosStats",
Handler: _MemoService_GetUserMemosStats_Handler, Handler: _MemoService_GetUserMemosStats_Handler,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment