mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-25 12:44:07 -08:00
🔀 Merge branch 'RicardoE105-features/typeform'
This commit is contained in:
commit
d783900614
|
@ -18,7 +18,6 @@ import {
|
||||||
ITypeformDefinition,
|
ITypeformDefinition,
|
||||||
} from './GenericFunctions';
|
} from './GenericFunctions';
|
||||||
|
|
||||||
|
|
||||||
export class TypeformTrigger implements INodeType {
|
export class TypeformTrigger implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Typeform Trigger',
|
displayName: 'Typeform Trigger',
|
||||||
|
@ -89,24 +88,23 @@ export class TypeformTrigger implements INodeType {
|
||||||
default: {
|
default: {
|
||||||
async checkExists(this: IHookFunctions): Promise<boolean> {
|
async checkExists(this: IHookFunctions): Promise<boolean> {
|
||||||
const webhookData = this.getWorkflowStaticData('node');
|
const webhookData = this.getWorkflowStaticData('node');
|
||||||
|
const webhookUrl = this.getNodeWebhookUrl('default');
|
||||||
if (webhookData.webhookId === undefined) {
|
|
||||||
// No webhook id is set so no webhook can exist
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const formId = this.getNodeParameter('formId') as string;
|
const formId = this.getNodeParameter('formId') as string;
|
||||||
|
|
||||||
const endpoint = `forms/${formId}/webhooks/${webhookData.webhookId}`;
|
const endpoint = `forms/${formId}/webhooks`;
|
||||||
|
|
||||||
try {
|
const { items } = await apiRequest.call(this, 'GET', endpoint, {});
|
||||||
const body = {};
|
|
||||||
await apiRequest.call(this, 'POST', endpoint, body);
|
for (const item of items) {
|
||||||
} catch (e) {
|
if (item.form_id === formId
|
||||||
return false;
|
&& item.url === webhookUrl) {
|
||||||
|
webhookData.webhookId = item.tag;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
},
|
},
|
||||||
async create(this: IHookFunctions): Promise<boolean> {
|
async create(this: IHookFunctions): Promise<boolean> {
|
||||||
const webhookUrl = this.getNodeWebhookUrl('default');
|
const webhookUrl = this.getNodeWebhookUrl('default');
|
||||||
|
@ -138,14 +136,12 @@ export class TypeformTrigger implements INodeType {
|
||||||
if (webhookData.webhookId !== undefined) {
|
if (webhookData.webhookId !== undefined) {
|
||||||
const endpoint = `forms/${formId}/webhooks/${webhookData.webhookId}`;
|
const endpoint = `forms/${formId}/webhooks/${webhookData.webhookId}`;
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const body = {};
|
const body = {};
|
||||||
await apiRequest.call(this, 'DELETE', endpoint, body);
|
await apiRequest.call(this, 'DELETE', endpoint, body);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove from the static workflow data so that it is clear
|
// Remove from the static workflow data so that it is clear
|
||||||
// that no webhooks are registred anymore
|
// that no webhooks are registred anymore
|
||||||
delete webhookData.webhookId;
|
delete webhookData.webhookId;
|
||||||
|
|
Loading…
Reference in a new issue