mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-10 06:34:05 -08:00
⚡ Reuse webhooks.
This commit is contained in:
parent
44f5d4b528
commit
50ecb8d0a9
|
@ -17,6 +17,7 @@ import {
|
|||
ITypeformAnswerField,
|
||||
ITypeformDefinition,
|
||||
} from './GenericFunctions';
|
||||
import { Webhook } from '../Webhook.node';
|
||||
|
||||
|
||||
export class TypeformTrigger implements INodeType {
|
||||
|
@ -89,24 +90,23 @@ export class TypeformTrigger implements INodeType {
|
|||
default: {
|
||||
async checkExists(this: IHookFunctions): Promise<boolean> {
|
||||
const webhookData = this.getWorkflowStaticData('node');
|
||||
|
||||
if (webhookData.webhookId === undefined) {
|
||||
// No webhook id is set so no webhook can exist
|
||||
return false;
|
||||
}
|
||||
const webhookUrl = this.getNodeWebhookUrl('default');
|
||||
|
||||
const formId = this.getNodeParameter('formId') as string;
|
||||
|
||||
const endpoint = `forms/${formId}/webhooks/${webhookData.webhookId}`;
|
||||
const endpoint = `forms/${formId}/webhooks`;
|
||||
|
||||
try {
|
||||
const body = {};
|
||||
await apiRequest.call(this, 'POST', endpoint, body);
|
||||
} catch (e) {
|
||||
return false;
|
||||
const { items } = await apiRequest.call(this, 'GET', endpoint, {});
|
||||
|
||||
for (const item of items) {
|
||||
if (item.form_id === formId
|
||||
&& item.url === webhookUrl) {
|
||||
webhookData.webhookId = item.tag;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
},
|
||||
async create(this: IHookFunctions): Promise<boolean> {
|
||||
const webhookUrl = this.getNodeWebhookUrl('default');
|
||||
|
@ -138,14 +138,12 @@ export class TypeformTrigger implements INodeType {
|
|||
if (webhookData.webhookId !== undefined) {
|
||||
const endpoint = `forms/${formId}/webhooks/${webhookData.webhookId}`;
|
||||
|
||||
|
||||
try {
|
||||
const body = {};
|
||||
await apiRequest.call(this, 'DELETE', endpoint, body);
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Remove from the static workflow data so that it is clear
|
||||
// that no webhooks are registred anymore
|
||||
delete webhookData.webhookId;
|
||||
|
|
Loading…
Reference in a new issue