From 51909772a48d86cba215296e580db78769b75321 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sun, 26 Feb 2023 14:20:00 -0500 Subject: [PATCH] Webhook support for comments (#4932) * fix: Restore newlines in code line numbers as safety measure * Add comments to webhook payloads --- .../components/WebhookSubscriptionForm.tsx | 48 +++++++++++-------- .../server/tasks/DeliverWebhookTask.ts | 22 ++++++++- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/plugins/webhooks/client/components/WebhookSubscriptionForm.tsx b/plugins/webhooks/client/components/WebhookSubscriptionForm.tsx index 97f80a62f..3a8cdf822 100644 --- a/plugins/webhooks/client/components/WebhookSubscriptionForm.tsx +++ b/plugins/webhooks/client/components/WebhookSubscriptionForm.tsx @@ -5,10 +5,12 @@ import { useEffect } from "react"; import { useForm } from "react-hook-form"; import { useTranslation, Trans } from "react-i18next"; import styled from "styled-components"; +import { TeamPreference } from "@shared/types"; import WebhookSubscription from "~/models/WebhookSubscription"; import Button from "~/components/Button"; import Input from "~/components/Input"; import Text from "~/components/Text"; +import useCurrentTeam from "~/hooks/useCurrentTeam"; import useMobile from "~/hooks/useMobile"; const WEBHOOK_EVENTS = { @@ -36,12 +38,6 @@ const WEBHOOK_EVENTS = { "documents.update", "documents.title_change", ], - revision: ["revisions.create"], - fileOperation: [ - "fileOperations.create", - "fileOperations.update", - "fileOperations.delete", - ], collection: [ "collections.create", "collections.update", @@ -53,6 +49,13 @@ const WEBHOOK_EVENTS = { "collections.move", "collections.permission_changed", ], + comment: ["comments.create", "comments.update", "comments.delete"], + revision: ["revisions.create"], + fileOperation: [ + "fileOperations.create", + "fileOperations.update", + "fileOperations.delete", + ], group: [ "groups.create", "groups.update", @@ -155,6 +158,7 @@ function generateSigningSecret() { function WebhookSubscriptionForm({ handleSubmit, webhookSubscription }: Props) { const { t } = useTranslation(); + const team = useCurrentTeam(); const { register, handleSubmit: formHandleSubmit, @@ -270,19 +274,25 @@ function WebhookSubscriptionForm({ handleSubmit, webhookSubscription }: Props) {
- {Object.entries(WEBHOOK_EVENTS).map(([group, events], i) => ( - - -
- {events.map((event) => ( - - ))} -
-
- ))} + {Object.entries(WEBHOOK_EVENTS) + .filter( + ([group]) => + group !== "comment" || + team.getPreference(TeamPreference.Commenting) + ) + .map(([group, events], i) => ( + + +
+ {events.map((event) => ( + + ))} +
+
+ ))}