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
41976cb8
Commit
41976cb8
authored
Sep 22, 2024
by
johnnyjoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update memo endpoints
parent
c28516b3
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
504 additions
and
466 deletions
+504
-466
apidocs.swagger.yaml
docs/apidocs.swagger.yaml
+10
-12
memo_service.proto
proto/api/v1/memo_service.proto
+6
-7
memo_service.pb.go
proto/gen/api/v1/memo_service.pb.go
+440
-429
memo_service.go
server/router/api/v1/memo_service.go
+36
-2
index.tsx
web/src/components/MemoEditor/index.tsx
+12
-16
No files found.
docs/apidocs.swagger.yaml
View file @
41976cb8
...
@@ -825,22 +825,16 @@ paths:
...
@@ -825,22 +825,16 @@ paths:
type
:
string
type
:
string
pinned
:
pinned
:
type
:
boolean
type
:
boolean
parentId
:
type
:
integer
format
:
int32
readOnly
:
true
resources
:
resources
:
type
:
array
type
:
array
items
:
items
:
type
:
object
type
:
object
$ref
:
'
#/definitions/v1Resource'
$ref
:
'
#/definitions/v1Resource'
readOnly
:
true
relations
:
relations
:
type
:
array
type
:
array
items
:
items
:
type
:
object
type
:
object
$ref
:
'
#/definitions/v1MemoRelation'
$ref
:
'
#/definitions/v1MemoRelation'
readOnly
:
true
reactions
:
reactions
:
type
:
array
type
:
array
items
:
items
:
...
@@ -2260,6 +2254,16 @@ definitions:
...
@@ -2260,6 +2254,16 @@ definitions:
type
:
string
type
:
string
visibility
:
visibility
:
$ref
:
'
#/definitions/v1Visibility'
$ref
:
'
#/definitions/v1Visibility'
resources
:
type
:
array
items
:
type
:
object
$ref
:
'
#/definitions/v1Resource'
relations
:
type
:
array
items
:
type
:
object
$ref
:
'
#/definitions/v1MemoRelation'
v1CreateWebhookRequest
:
v1CreateWebhookRequest
:
type
:
object
type
:
object
properties
:
properties
:
...
@@ -2547,22 +2551,16 @@ definitions:
...
@@ -2547,22 +2551,16 @@ definitions:
type
:
string
type
:
string
pinned
:
pinned
:
type
:
boolean
type
:
boolean
parentId
:
type
:
integer
format
:
int32
readOnly
:
true
resources
:
resources
:
type
:
array
type
:
array
items
:
items
:
type
:
object
type
:
object
$ref
:
'
#/definitions/v1Resource'
$ref
:
'
#/definitions/v1Resource'
readOnly
:
true
relations
:
relations
:
type
:
array
type
:
array
items
:
items
:
type
:
object
type
:
object
$ref
:
'
#/definitions/v1MemoRelation'
$ref
:
'
#/definitions/v1MemoRelation'
readOnly
:
true
reactions
:
reactions
:
type
:
array
type
:
array
items
:
items
:
...
...
proto/api/v1/memo_service.proto
View file @
41976cb8
...
@@ -174,14 +174,9 @@ message Memo {
...
@@ -174,14 +174,9 @@ message Memo {
bool
pinned
=
12
;
bool
pinned
=
12
;
optional
int32
parent_id
=
13
[
repeated
Resource
resources
=
14
;
deprecated
=
true
,
(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
Resource
resources
=
14
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
MemoRelation
relations
=
15
;
repeated
MemoRelation
relations
=
15
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
Reaction
reactions
=
16
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
repeated
Reaction
reactions
=
16
[(
google.api.field_behavior
)
=
OUTPUT_ONLY
];
...
@@ -207,6 +202,10 @@ message CreateMemoRequest {
...
@@ -207,6 +202,10 @@ message CreateMemoRequest {
string
content
=
1
;
string
content
=
1
;
Visibility
visibility
=
2
;
Visibility
visibility
=
2
;
repeated
Resource
resources
=
3
;
repeated
MemoRelation
relations
=
4
;
}
}
message
ListMemosRequest
{
message
ListMemosRequest
{
...
...
proto/gen/api/v1/memo_service.pb.go
View file @
41976cb8
This diff is collapsed.
Click to expand it.
server/router/api/v1/memo_service.go
View file @
41976cb8
...
@@ -71,6 +71,24 @@ func (s *APIV1Service) CreateMemo(ctx context.Context, request *v1pb.CreateMemoR
...
@@ -71,6 +71,24 @@ func (s *APIV1Service) CreateMemo(ctx context.Context, request *v1pb.CreateMemoR
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
if
len
(
request
.
Resources
)
>
0
{
_
,
err
:=
s
.
SetMemoResources
(
ctx
,
&
v1pb
.
SetMemoResourcesRequest
{
Name
:
fmt
.
Sprintf
(
"%s%d"
,
MemoNamePrefix
,
memo
.
ID
),
Resources
:
request
.
Resources
,
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to set memo resources"
)
}
}
if
len
(
request
.
Relations
)
>
0
{
_
,
err
:=
s
.
SetMemoRelations
(
ctx
,
&
v1pb
.
SetMemoRelationsRequest
{
Name
:
fmt
.
Sprintf
(
"%s%d"
,
MemoNamePrefix
,
memo
.
ID
),
Relations
:
request
.
Relations
,
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to set memo relations"
)
}
}
memoMessage
,
err
:=
s
.
convertMemoFromStore
(
ctx
,
memo
)
memoMessage
,
err
:=
s
.
convertMemoFromStore
(
ctx
,
memo
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -293,6 +311,22 @@ func (s *APIV1Service) UpdateMemo(ctx context.Context, request *v1pb.UpdateMemoR
...
@@ -293,6 +311,22 @@ func (s *APIV1Service) UpdateMemo(ctx context.Context, request *v1pb.UpdateMemoR
});
err
!=
nil
{
});
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to upsert memo organizer"
)
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to upsert memo organizer"
)
}
}
}
else
if
path
==
"resources"
{
_
,
err
:=
s
.
SetMemoResources
(
ctx
,
&
v1pb
.
SetMemoResourcesRequest
{
Name
:
request
.
Memo
.
Name
,
Resources
:
request
.
Memo
.
Resources
,
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to set memo resources"
)
}
}
else
if
path
==
"relations"
{
_
,
err
:=
s
.
SetMemoRelations
(
ctx
,
&
v1pb
.
SetMemoRelationsRequest
{
Name
:
request
.
Memo
.
Name
,
Relations
:
request
.
Memo
.
Relations
,
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to set memo relations"
)
}
}
}
}
}
...
@@ -1145,8 +1179,8 @@ func getMemoContentSnippet(content string) (string, error) {
...
@@ -1145,8 +1179,8 @@ func getMemoContentSnippet(content string) (string, error) {
}
}
plainText
:=
renderer
.
NewStringRenderer
()
.
Render
(
nodes
)
plainText
:=
renderer
.
NewStringRenderer
()
.
Render
(
nodes
)
if
len
(
plainText
)
>
100
{
if
len
(
plainText
)
>
64
{
return
substring
(
plainText
,
100
)
+
"..."
,
nil
return
substring
(
plainText
,
64
)
+
"..."
,
nil
}
}
return
plainText
,
nil
return
plainText
,
nil
}
}
...
...
web/src/components/MemoEditor/index.tsx
View file @
41976cb8
...
@@ -303,15 +303,15 @@ const MemoEditor = (props: Props) => {
...
@@ -303,15 +303,15 @@ const MemoEditor = (props: Props) => {
updateMask
.
push
(
"display_time"
);
updateMask
.
push
(
"display_time"
);
memoPatch
.
displayTime
=
displayTime
;
memoPatch
.
displayTime
=
displayTime
;
}
}
if
(
!
isEqual
(
state
.
resourceList
,
prevMemo
.
resources
))
{
updateMask
.
push
(
"resources"
);
memoPatch
.
resources
=
state
.
resourceList
;
}
if
(
!
isEqual
(
state
.
relationList
,
prevMemo
.
relations
))
{
updateMask
.
push
(
"relations"
);
memoPatch
.
relations
=
state
.
relationList
;
}
const
memo
=
await
memoStore
.
updateMemo
(
memoPatch
,
updateMask
);
const
memo
=
await
memoStore
.
updateMemo
(
memoPatch
,
updateMask
);
await
memoServiceClient
.
setMemoResources
({
name
:
memo
.
name
,
resources
:
state
.
resourceList
,
});
await
memoServiceClient
.
setMemoRelations
({
name
:
memo
.
name
,
relations
:
state
.
relationList
,
});
await
memoStore
.
getOrFetchMemoByName
(
memo
.
name
,
{
skipCache
:
true
});
await
memoStore
.
getOrFetchMemoByName
(
memo
.
name
,
{
skipCache
:
true
});
if
(
onConfirm
)
{
if
(
onConfirm
)
{
onConfirm
(
memo
.
name
);
onConfirm
(
memo
.
name
);
...
@@ -323,6 +323,8 @@ const MemoEditor = (props: Props) => {
...
@@ -323,6 +323,8 @@ const MemoEditor = (props: Props) => {
?
memoStore
.
createMemo
({
?
memoStore
.
createMemo
({
content
,
content
,
visibility
:
state
.
memoVisibility
,
visibility
:
state
.
memoVisibility
,
resources
:
state
.
resourceList
,
relations
:
state
.
relationList
,
})
})
:
memoServiceClient
:
memoServiceClient
.
createMemoComment
({
.
createMemoComment
({
...
@@ -330,18 +332,12 @@ const MemoEditor = (props: Props) => {
...
@@ -330,18 +332,12 @@ const MemoEditor = (props: Props) => {
comment
:
{
comment
:
{
content
,
content
,
visibility
:
state
.
memoVisibility
,
visibility
:
state
.
memoVisibility
,
resources
:
state
.
resourceList
,
relations
:
state
.
relationList
,
},
},
})
})
.
then
((
memo
)
=>
memo
);
.
then
((
memo
)
=>
memo
);
const
memo
=
await
request
;
const
memo
=
await
request
;
await
memoServiceClient
.
setMemoResources
({
name
:
memo
.
name
,
resources
:
state
.
resourceList
,
});
await
memoServiceClient
.
setMemoRelations
({
name
:
memo
.
name
,
relations
:
state
.
relationList
,
});
await
memoStore
.
getOrFetchMemoByName
(
memo
.
name
,
{
skipCache
:
true
});
await
memoStore
.
getOrFetchMemoByName
(
memo
.
name
,
{
skipCache
:
true
});
if
(
onConfirm
)
{
if
(
onConfirm
)
{
onConfirm
(
memo
.
name
);
onConfirm
(
memo
.
name
);
...
...
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