[FIX] Outgoing integrations without trigger words or with multiple commas (#19488)

Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
Co-authored-by: Diego Sampaio <chinello@gmail.com>
pull/19643/head
Gabriel Thomé 5 years ago committed by GitHub
parent baadaacd68
commit 0d6175d6b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      client/admin/integrations/edit/EditOutgoingWebhook.js
  2. 13
      client/admin/integrations/helpers/triggerWords.ts
  3. 5
      client/admin/integrations/new/NewOutgoingWebhook.js
  4. 7
      package-lock.json

@ -18,6 +18,8 @@ import OutgoingWebhookForm from '../OutgoiongWebhookForm';
import { useForm } from '../../../hooks/useForm';
import DeleteSuccessModal from '../../../components/DeleteSuccessModal';
import DeleteWarningModal from '../../../components/DeleteWarningModal';
import { triggerWordsToArray, triggerWordsToString } from '../helpers/triggerWords';
export default function EditOutgoingWebhookWithData({ integrationId, ...props }) {
const t = useTranslation();
@ -54,7 +56,7 @@ const getInitialValue = (data) => {
event: data.event,
token: data.token,
urls: data.urls.join('\n') ?? '',
triggerWords: data.triggerWords?.join('; ') ?? '',
triggerWords: triggerWordsToString(data.triggerWords),
targetRoom: data.targetRoom ?? '',
channel: data.channel.join(', ') ?? '',
username: data.username ?? '',
@ -115,7 +117,7 @@ function EditOutgoingWebhook({ data, onChange, setSaveAction, ...props }) {
try {
await saveIntegration(data._id, {
...formValues,
triggerWords: triggerWords.split(/\s*(?:;|$)\s*/),
triggerWords: triggerWordsToArray(triggerWords),
urls: urls.split('\n'),
});

@ -0,0 +1,13 @@
const separator = ',';
export function triggerWordsToArray(s?: string): Array<string> {
if (typeof s !== 'string' || s.length === 0) {
return [];
}
return s.split(separator);
}
export function triggerWordsToString(triggerWords?: Array<string>): string {
return triggerWords?.join(separator) ?? '';
}

@ -7,6 +7,7 @@ import { useEndpointAction } from '../../../hooks/useEndpointAction';
import { useRoute } from '../../../contexts/RouterContext';
import { useForm } from '../../../hooks/useForm';
import OutgoingWebhookForm from '../OutgoiongWebhookForm';
import { triggerWordsToArray } from '../helpers/triggerWords';
const defaultData = {
type: 'webhook-outgoing',
@ -31,6 +32,7 @@ const defaultData = {
runOnEdits: true,
};
export default function NewOutgoingWebhook({ data = defaultData, onChange, setSaveAction, ...props }) {
const t = useTranslation();
const router = useRoute('admin-integrations');
@ -42,10 +44,11 @@ export default function NewOutgoingWebhook({ data = defaultData, onChange, setSa
triggerWords,
} = formValues;
const params = useMemo(() => ({
...formValues,
urls: urls.split('\n'),
triggerWords: triggerWords.split(';'),
triggerWords: triggerWordsToArray(triggerWords),
}), [formValues, triggerWords, urls]);
const saveIntegration = useEndpointAction('POST', 'integrations.create', params, t('Integration_added'));

7
package-lock.json generated

@ -5038,6 +5038,13 @@
"semver": "^5.5.0",
"stack-trace": "0.0.10",
"uuid": "^3.2.1"
},
"dependencies": {
"adm-zip": {
"version": "0.4.16",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
"integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg=="
}
}
},
"@rocket.chat/css-in-js": {

Loading…
Cancel
Save