🔀 Merge branch 'RicardoE105-features/typeform'

This commit is contained in:
Jan Oberhauser 2020-02-29 17:04:59 +01:00
commit d783900614

View file

@ -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;