Skip to content

Commit

Permalink
⚡ Make event on Eventbrite Trigger Node optional (#2829)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
3 people authored Apr 14, 2022
1 parent 29fdd77 commit 5e54249
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
17 changes: 9 additions & 8 deletions packages/nodes-base/nodes/Eventbrite/EventbriteTrigger.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
},
Expand Down Expand Up @@ -79,7 +80,6 @@ export class EventbriteTrigger implements INodeType {
},
],
default: 'privateKey',
description: 'The resource to operate on.',
},
{
displayName: 'Organization',
Expand All @@ -90,7 +90,7 @@ export class EventbriteTrigger implements INodeType {
loadOptionsMethod: 'getOrganizations',
},
default: '',
description: '',
description: 'The Eventbrite Organization to work on',
},
{
displayName: 'Event',
Expand All @@ -104,7 +104,7 @@ export class EventbriteTrigger implements INodeType {
loadOptionsMethod: 'getEvents',
},
default: '',
description: '',
description: 'Limit the triggers to this event',
},
{
displayName: 'Actions',
Expand Down Expand Up @@ -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',
},
],
};
Expand All @@ -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) {
Expand Down Expand Up @@ -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;
},
Expand Down
5 changes: 2 additions & 3 deletions packages/nodes-base/nodes/Eventbrite/GenericFunctions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
}
}

Expand Down

0 comments on commit 5e54249

Please sign in to comment.