feat(google-calendar): add new event trigger

This commit is contained in:
Rıdvan Akca
2023-09-19 12:46:16 +03:00
parent 6a66b65f2a
commit 242b68889a
6 changed files with 100 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import newCalendar from './new-calendar';
import newEvent from './new-event';
export default [newCalendar];
export default [newCalendar, newEvent];

View File

@@ -0,0 +1,55 @@
import defineTrigger from '../../../../helpers/define-trigger';
export default defineTrigger({
name: 'New event',
key: 'newEvent',
pollInterval: 15,
description: 'Triggers when a new event is created.',
arguments: [
{
label: 'Calendar',
key: 'calendarId',
type: 'dropdown' as const,
required: true,
description: '',
variables: false,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listCalendars',
},
],
},
},
],
async run($) {
const calendarId = $.step.parameters.calendarId;
const params: Record<string, unknown> = {
pageToken: undefined as unknown as string,
orderBy: 'updated',
};
do {
const { data } = await $.http.get(`/v3/calendars/${calendarId}/events`, {
params,
});
params.pageToken = data.nextPageToken;
if (data.items?.length) {
for (const event of data.items.reverse()) {
$.pushTriggerItem({
raw: event,
meta: {
internalId: event.etag,
},
});
}
}
} while (params.pageToken);
},
});