Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/eventbrite optional event #2829

Merged
merged 5 commits into from
Apr 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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