Make event on Eventbrite Trigger Node optional (#2829)

* Set `event` property as optional

* Add some parameter descriptions

To please nodelinter, mostly.

* Fix UI complaining about missing parameter.

* 🚨 Fixed lint isssues

*  Improvements

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
This commit is contained in:
Francesco Pongiluppi 2022-04-14 09:36:46 +02:00 committed by GitHub
parent 29fdd77d7b
commit 5e54249c41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 11 deletions

View file

@ -26,6 +26,7 @@ export class EventbriteTrigger implements INodeType {
group: ['trigger'],
version: 1,
description: 'Handle Eventbrite events via webhooks',
subtitle: '={{$parameter["event"]}}',
defaults: {
name: 'Eventbrite Trigger',
},
@ -79,7 +80,6 @@ export class EventbriteTrigger implements INodeType {
},
],
default: 'privateKey',
description: 'The resource to operate on.',
},
{
displayName: 'Organization',
@ -90,7 +90,7 @@ export class EventbriteTrigger implements INodeType {
loadOptionsMethod: 'getOrganizations',
},
default: '',
description: '',
description: 'The Eventbrite Organization to work on',
},
{
displayName: 'Event',
@ -104,7 +104,7 @@ export class EventbriteTrigger implements INodeType {
loadOptionsMethod: 'getEvents',
},
default: '',
description: '',
description: 'Limit the triggers to this event',
},
{
displayName: 'Actions',
@ -174,14 +174,14 @@ export class EventbriteTrigger implements INodeType {
],
required: true,
default: [],
description: '',
description: 'One or more action to subscribe to.',
},
{
displayName: 'Resolve Data',
name: 'resolveData',
type: 'boolean',
default: true,
description: 'By default does the webhook-data only contain the URL to receive the object data manually. If this option gets activated, it will resolve the data automatically.',
description: 'By default does the webhook-data only contain the URL to receive the object data manually. If this option gets activated, it will resolve the data automatically',
},
],
};
@ -206,7 +206,7 @@ export class EventbriteTrigger implements INodeType {
// Get all the available events to display them to user so that he can
// select them easily
async getEvents(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
const returnData: INodePropertyOptions[] = [];
const returnData: INodePropertyOptions[] = [{ name: 'All', value: 'all' }];
const organization = this.getCurrentNodeParameter('organization');
const events = await eventbriteApiRequestAllItems.call(this, 'events', 'GET', `/organizations/${organization}/events`);
for (const event of events) {
@ -264,9 +264,10 @@ export class EventbriteTrigger implements INodeType {
actions: actions.join(','),
event_id: event,
};
if (event === 'all' || event === '') {
delete body.event_id;
}
const responseData = await eventbriteApiRequest.call(this, 'POST', endpoint, body);
webhookData.webhookId = responseData.id;
return true;
},

View file

@ -11,7 +11,7 @@ import {
} from 'n8n-core';
import {
IDataObject, NodeApiError, NodeOperationError,
IDataObject, JsonObject, NodeApiError, NodeOperationError,
} from 'n8n-workflow';
export async function eventbriteApiRequest(this: IHookFunctions | IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions | IWebhookFunctions, method: string, resource: string, body: any = {}, qs: IDataObject = {}, uri?: string, option: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any
@ -38,13 +38,12 @@ export async function eventbriteApiRequest(this: IHookFunctions | IExecuteFuncti
}
options.headers!['Authorization'] = `Bearer ${credentials.apiKey}`;
return await this.helpers.request!(options);
} else {
return await this.helpers.requestOAuth2!.call(this, 'eventbriteOAuth2Api', options);
}
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}