Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
2f0b0e00
Commit
2f0b0e00
authored
Jan 31, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: remove node definition
parent
8ce6a32a
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
533 additions
and
2360 deletions
+533
-2360
apidocs.swagger.md
api/v2/apidocs.swagger.md
+113
-245
apidocs.swagger.yaml
api/v2/apidocs.swagger.yaml
+0
-341
markdown_service_test.go
api/v2/markdown_service_test.go
+0
-30
memo_service.go
api/v2/memo_service.go
+0
-22
node.go
api/v2/node.go
+0
-188
go.mod
go.mod
+1
-1
go.sum
go.sum
+2
-2
memo_service.proto
proto/api/v2/memo_service.proto
+5
-20
node.proto
proto/api/v2/node.proto
+0
-204
README.md
proto/gen/api/v2/README.md
+0
-615
memo_service.pb.go
proto/gen/api/v2/memo_service.pb.go
+398
-552
memo_service.pb.gw.go
proto/gen/api/v2/memo_service.pb.gw.go
+0
-87
memo_service_grpc.pb.go
proto/gen/api/v2/memo_service_grpc.pb.go
+14
-53
No files found.
api/v2/apidocs.swagger.md
View file @
2f0b0e00
This diff is collapsed.
Click to expand it.
api/v2/apidocs.swagger.yaml
View file @
2f0b0e00
...
@@ -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
:
...
...
api/v2/markdown_service_test.go
deleted
100644 → 0
View file @
8ce6a32a
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
)
})
}
}
api/v2/memo_service.go
View file @
2f0b0e00
...
@@ -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
,
...
...
api/v2/node.go
View file @
2f0b0e00
...
@@ -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
)
...
...
go.mod
View file @
2f0b0e00
...
@@ -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-202401311
05606-5333db6f5616
github.com/yourselfhosted/gomark v0.0.0-202401311
33943-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
...
...
go.sum
View file @
2f0b0e00
...
@@ -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-202401311
05606-5333db6f5616 h1:0CGKgsvZTYP54XexlxytlNesG0wNITs65B6yB1WfEy8
=
github.com/yourselfhosted/gomark v0.0.0-202401311
33943-224a9a6d90fc h1:JDF1cKZQjAH6CB2dViFscv88jS4LFt+BawCNDY+zpms
=
github.com/yourselfhosted/gomark v0.0.0-202401311
05606-5333db6f5616/go.mod h1:3CnrFK/H9I9D3ZHgjHQNcsh848Fv/FJUoC2vDMLYtt4
=
github.com/yourselfhosted/gomark v0.0.0-202401311
33943-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=
...
...
proto/api/v2/memo_service.proto
View file @
2f0b0e00
...
@@ -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
=
1
2
;
bool
pinned
=
1
1
;
optional
int32
parent_id
=
1
3
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
optional
int32
parent_id
=
1
2
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
Resource
resources
=
1
4
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
Resource
resources
=
1
3
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
MemoRelation
relations
=
1
5
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
MemoRelation
relations
=
1
4
[(
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
;
...
...
proto/api/v2/node.proto
deleted
100644 → 0
View file @
8ce6a32a
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
;
}
proto/gen/api/v2/README.md
View file @
2f0b0e00
This diff is collapsed.
Click to expand it.
proto/gen/api/v2/memo_service.pb.go
View file @
2f0b0e00
This diff is collapsed.
Click to expand it.
proto/gen/api/v2/memo_service.pb.gw.go
View file @
2f0b0e00
...
@@ -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
...
...
proto/gen/api/v2/memo_service_grpc.pb.go
View file @
2f0b0e00
...
@@ -19,21 +19,20 @@ import (
...
@@ -19,21 +19,20 @@ import (
const
_
=
grpc
.
SupportPackageIsVersion7
const
_
=
grpc
.
SupportPackageIsVersion7
const
(
const
(
MemoService_CreateMemo_FullMethodName
=
"/memos.api.v2.MemoService/CreateMemo"
MemoService_CreateMemo_FullMethodName
=
"/memos.api.v2.MemoService/CreateMemo"
MemoService_ListMemos_FullMethodName
=
"/memos.api.v2.MemoService/ListMemos"
MemoService_ListMemos_FullMethodName
=
"/memos.api.v2.MemoService/ListMemos"
MemoService_GetMemo_FullMethodName
=
"/memos.api.v2.MemoService/GetMemo"
MemoService_GetMemo_FullMethodName
=
"/memos.api.v2.MemoService/GetMemo"
MemoService_GetMemoByName_FullMethodName
=
"/memos.api.v2.MemoService/GetMemoByName"
MemoService_GetMemoByName_FullMethodName
=
"/memos.api.v2.MemoService/GetMemoByName"
MemoService_UpdateMemo_FullMethodName
=
"/memos.api.v2.MemoService/UpdateMemo"
MemoService_UpdateMemo_FullMethodName
=
"/memos.api.v2.MemoService/UpdateMemo"
MemoService_DeleteMemo_FullMethodName
=
"/memos.api.v2.MemoService/DeleteMemo"
MemoService_DeleteMemo_FullMethodName
=
"/memos.api.v2.MemoService/DeleteMemo"
MemoService_SetMemoResources_FullMethodName
=
"/memos.api.v2.MemoService/SetMemoResources"
MemoService_SetMemoResources_FullMethodName
=
"/memos.api.v2.MemoService/SetMemoResources"
MemoService_ListMemoResources_FullMethodName
=
"/memos.api.v2.MemoService/ListMemoResources"
MemoService_ListMemoResources_FullMethodName
=
"/memos.api.v2.MemoService/ListMemoResources"
MemoService_SetMemoRelations_FullMethodName
=
"/memos.api.v2.MemoService/SetMemoRelations"
MemoService_SetMemoRelations_FullMethodName
=
"/memos.api.v2.MemoService/SetMemoRelations"
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"
)
)
// MemoServiceClient is the client API for MemoService service.
// MemoServiceClient is the client API for MemoService service.
...
@@ -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
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment