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
7c1defba
Commit
7c1defba
authored
Mar 01, 2026
by
Johnny
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(webhook): dispatch webhook on memo comment creation
parent
53a8a436
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
0 deletions
+22
-0
memo_service.go
server/router/api/v1/memo_service.go
+22
-0
No files found.
server/router/api/v1/memo_service.go
View file @
7c1defba
...
@@ -625,6 +625,10 @@ func (s *APIV1Service) CreateMemoComment(ctx context.Context, request *v1pb.Crea
...
@@ -625,6 +625,10 @@ func (s *APIV1Service) CreateMemoComment(ctx context.Context, request *v1pb.Crea
}
}
}
}
if
err
:=
s
.
DispatchMemoCommentCreatedWebhook
(
ctx
,
memoComment
,
relatedMemo
.
CreatorID
);
err
!=
nil
{
slog
.
Warn
(
"Failed to dispatch memo comment created webhook"
,
slog
.
Any
(
"err"
,
err
))
}
return
memoComment
,
nil
return
memoComment
,
nil
}
}
...
@@ -745,6 +749,24 @@ func (s *APIV1Service) DispatchMemoDeletedWebhook(ctx context.Context, memo *v1p
...
@@ -745,6 +749,24 @@ func (s *APIV1Service) DispatchMemoDeletedWebhook(ctx context.Context, memo *v1p
return
s
.
dispatchMemoRelatedWebhook
(
ctx
,
memo
,
"memos.memo.deleted"
)
return
s
.
dispatchMemoRelatedWebhook
(
ctx
,
memo
,
"memos.memo.deleted"
)
}
}
// DispatchMemoCommentCreatedWebhook dispatches webhook to the related memo owner when a comment is created.
func
(
s
*
APIV1Service
)
DispatchMemoCommentCreatedWebhook
(
ctx
context
.
Context
,
commentMemo
*
v1pb
.
Memo
,
relatedMemoCreatorID
int32
)
error
{
webhooks
,
err
:=
s
.
Store
.
GetUserWebhooks
(
ctx
,
relatedMemoCreatorID
)
if
err
!=
nil
{
return
err
}
for
_
,
hook
:=
range
webhooks
{
payload
,
err
:=
convertMemoToWebhookPayload
(
commentMemo
)
if
err
!=
nil
{
return
errors
.
Wrap
(
err
,
"failed to convert memo to webhook payload"
)
}
payload
.
ActivityType
=
"memos.memo.comment.created"
payload
.
URL
=
hook
.
Url
webhook
.
PostAsync
(
payload
)
}
return
nil
}
func
(
s
*
APIV1Service
)
dispatchMemoRelatedWebhook
(
ctx
context
.
Context
,
memo
*
v1pb
.
Memo
,
activityType
string
)
error
{
func
(
s
*
APIV1Service
)
dispatchMemoRelatedWebhook
(
ctx
context
.
Context
,
memo
*
v1pb
.
Memo
,
activityType
string
)
error
{
creatorID
,
err
:=
ExtractUserIDFromName
(
memo
.
Creator
)
creatorID
,
err
:=
ExtractUserIDFromName
(
memo
.
Creator
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
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