mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
feat: add a webhook action for deleted memos (#2791)
This commit is contained in:
@ -625,6 +625,13 @@ func (s *APIV1Service) DeleteMemo(c echo.Context) error {
|
|||||||
return echo.NewHTTPError(http.StatusUnauthorized, "Unauthorized")
|
return echo.NewHTTPError(http.StatusUnauthorized, "Unauthorized")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if memoMessage, err := s.convertMemoFromStore(ctx, memo); err == nil {
|
||||||
|
// Try to dispatch webhook when memo is deleted.
|
||||||
|
if err := s.DispatchMemoDeletedWebhook(ctx, memoMessage); err != nil {
|
||||||
|
log.Warn("Failed to dispatch memo deleted webhook", zap.Error(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := s.Store.DeleteMemo(ctx, &store.DeleteMemo{
|
if err := s.Store.DeleteMemo(ctx, &store.DeleteMemo{
|
||||||
ID: memoID,
|
ID: memoID,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -958,6 +965,11 @@ func (s *APIV1Service) DispatchMemoUpdatedWebhook(ctx context.Context, memo *Mem
|
|||||||
return s.dispatchMemoRelatedWebhook(ctx, memo, "memos.memo.updated")
|
return s.dispatchMemoRelatedWebhook(ctx, memo, "memos.memo.updated")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DispatchMemoDeletedWebhook dispatches webhook when memo is deletedd.
|
||||||
|
func (s *APIV1Service) DispatchMemoDeletedWebhook(ctx context.Context, memo *Memo) error {
|
||||||
|
return s.dispatchMemoRelatedWebhook(ctx, memo, "memos.memo.deleted")
|
||||||
|
}
|
||||||
|
|
||||||
func (s *APIV1Service) dispatchMemoRelatedWebhook(ctx context.Context, memo *Memo, activityType string) error {
|
func (s *APIV1Service) dispatchMemoRelatedWebhook(ctx context.Context, memo *Memo, activityType string) error {
|
||||||
webhooks, err := s.Store.ListWebhooks(ctx, &store.FindWebhook{
|
webhooks, err := s.Store.ListWebhooks(ctx, &store.FindWebhook{
|
||||||
CreatorID: &memo.CreatorID,
|
CreatorID: &memo.CreatorID,
|
||||||
|
@ -346,6 +346,13 @@ func (s *APIV2Service) DeleteMemo(ctx context.Context, request *apiv2pb.DeleteMe
|
|||||||
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
|
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if memoMessage, err := s.convertMemoFromStore(ctx, memo); err == nil {
|
||||||
|
// Try to dispatch webhook when memo is deleted.
|
||||||
|
if err := s.DispatchMemoDeletedWebhook(ctx, memoMessage); err != nil {
|
||||||
|
log.Warn("Failed to dispatch memo deleted webhook", zap.Error(err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err = s.Store.DeleteMemo(ctx, &store.DeleteMemo{
|
if err = s.Store.DeleteMemo(ctx, &store.DeleteMemo{
|
||||||
ID: request.Id,
|
ID: request.Id,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -740,6 +747,11 @@ func (s *APIV2Service) DispatchMemoUpdatedWebhook(ctx context.Context, memo *api
|
|||||||
return s.dispatchMemoRelatedWebhook(ctx, memo, "memos.memo.updated")
|
return s.dispatchMemoRelatedWebhook(ctx, memo, "memos.memo.updated")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DispatchMemoDeletedWebhook dispatches webhook when memo is deleted.
|
||||||
|
func (s *APIV2Service) DispatchMemoDeletedWebhook(ctx context.Context, memo *apiv2pb.Memo) error {
|
||||||
|
return s.dispatchMemoRelatedWebhook(ctx, memo, "memos.memo.deleted")
|
||||||
|
}
|
||||||
|
|
||||||
func (s *APIV2Service) dispatchMemoRelatedWebhook(ctx context.Context, memo *apiv2pb.Memo, activityType string) error {
|
func (s *APIV2Service) dispatchMemoRelatedWebhook(ctx context.Context, memo *apiv2pb.Memo, activityType string) error {
|
||||||
webhooks, err := s.Store.ListWebhooks(ctx, &store.FindWebhook{
|
webhooks, err := s.Store.ListWebhooks(ctx, &store.FindWebhook{
|
||||||
CreatorID: &memo.CreatorId,
|
CreatorID: &memo.CreatorId,
|
||||||
|
Reference in New Issue
Block a user