@activepieces/piece-google-calendar 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,8 +3,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.newEvent = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const shared_1 = require("@activepieces/shared");
6
7
  const common_1 = require("../common");
7
8
  const helper_1 = require("../common/helper");
9
+ const WATCH_STORE_KEY = 'google_calendar_watch';
10
+ const SYNC_TOKEN_STORE_KEY = 'google_calendar_sync_token';
11
+ const SEEN_EVENT_IDS_STORE_KEY = 'google_calendar_seen_event_ids';
12
+ const SEEN_EVENT_IDS_LIMIT = 500;
13
+ function matchesFilters(event, { event_types, search_filter, exclude_all_day }) {
14
+ var _a, _b;
15
+ if (event_types && event_types.length > 0) {
16
+ const eventType = event.eventType || 'default';
17
+ if (!event_types.includes(eventType)) {
18
+ return false;
19
+ }
20
+ }
21
+ if (search_filter && search_filter.trim()) {
22
+ const searchTerm = search_filter.toLowerCase().trim();
23
+ const summary = (event.summary || '').toLowerCase();
24
+ const description = (event.description || '').toLowerCase();
25
+ const location = (event.location || '').toLowerCase();
26
+ const matchesSearch = summary.includes(searchTerm) ||
27
+ description.includes(searchTerm) ||
28
+ location.includes(searchTerm);
29
+ if (!matchesSearch) {
30
+ return false;
31
+ }
32
+ }
33
+ if (exclude_all_day) {
34
+ const isAllDay = ((_a = event.start) === null || _a === void 0 ? void 0 : _a.date) && !((_b = event.start) === null || _b === void 0 ? void 0 : _b.dateTime);
35
+ if (isAllDay) {
36
+ return false;
37
+ }
38
+ }
39
+ return true;
40
+ }
8
41
  exports.newEvent = (0, pieces_framework_1.createTrigger)({
9
42
  auth: common_1.googleCalendarAuth,
10
43
  name: 'new_event',
@@ -40,6 +73,10 @@ exports.newEvent = (0, pieces_framework_1.createTrigger)({
40
73
  }),
41
74
  },
42
75
  type: pieces_framework_1.TriggerStrategy.WEBHOOK,
76
+ renewConfiguration: {
77
+ strategy: pieces_framework_1.WebhookRenewStrategy.CRON,
78
+ cronExpression: '0 */12 * * *',
79
+ },
43
80
  sampleData: {
44
81
  kind: 'calendar#event',
45
82
  etag: '"3419997894982000"',
@@ -72,86 +109,114 @@ exports.newEvent = (0, pieces_framework_1.createTrigger)({
72
109
  const calendarId = context.propsValue.calendar_id;
73
110
  const auth = context.auth;
74
111
  const response = yield (0, helper_1.watchEvent)(calendarId, context.webhookUrl, auth);
75
- yield context.store.put('google_calendar_watch', response);
112
+ yield context.store.put(WATCH_STORE_KEY, response);
113
+ const initialSyncToken = yield (0, helper_1.getInitialSyncToken)({
114
+ calendarId,
115
+ authProp: auth,
116
+ });
117
+ if (!(0, shared_1.isNil)(initialSyncToken)) {
118
+ yield context.store.put(SYNC_TOKEN_STORE_KEY, initialSyncToken);
119
+ }
76
120
  });
77
121
  },
78
122
  onDisable(context) {
79
123
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
124
  const auth = context.auth;
81
- const watch = yield context.store.get('google_calendar_watch');
125
+ const watch = yield context.store.get(WATCH_STORE_KEY);
82
126
  if (watch) {
83
127
  yield (0, helper_1.stopWatchEvent)(watch, auth);
84
128
  }
129
+ yield context.store.delete(SYNC_TOKEN_STORE_KEY);
130
+ yield context.store.delete(SEEN_EVENT_IDS_STORE_KEY);
131
+ });
132
+ },
133
+ onRenew(context) {
134
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
135
+ const calendarId = context.propsValue.calendar_id;
136
+ const auth = context.auth;
137
+ const existingWatch = yield context.store.get(WATCH_STORE_KEY);
138
+ if (existingWatch) {
139
+ yield (0, helper_1.stopWatchEvent)(existingWatch, auth);
140
+ }
141
+ const renewed = yield (0, helper_1.watchEvent)(calendarId, context.webhookUrl, auth);
142
+ yield context.store.put(WATCH_STORE_KEY, renewed);
85
143
  });
86
144
  },
87
145
  run(context) {
88
146
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
- var _a, _b;
147
+ var _a;
90
148
  const payload = context.payload;
91
149
  const headers = payload.headers;
92
- const { event_types, search_filter, exclude_all_day } = context.propsValue;
93
- if (headers['x-goog-resource-state'] === 'add') {
94
- const eventData = payload.body;
95
- if (event_types && event_types.length > 0) {
96
- const eventType = eventData.eventType || 'default';
97
- if (!event_types.includes(eventType)) {
98
- return [];
99
- }
150
+ const resourceState = headers['x-goog-resource-state'];
151
+ const filters = {
152
+ event_types: context.propsValue.event_types,
153
+ search_filter: context.propsValue.search_filter,
154
+ exclude_all_day: context.propsValue.exclude_all_day,
155
+ };
156
+ if (resourceState === 'sync') {
157
+ return [];
158
+ }
159
+ if (resourceState !== 'exists') {
160
+ return [];
161
+ }
162
+ const calendarId = context.propsValue.calendar_id;
163
+ const auth = context.auth;
164
+ const syncToken = yield context.store.get(SYNC_TOKEN_STORE_KEY);
165
+ if ((0, shared_1.isNil)(syncToken)) {
166
+ const fresh = yield (0, helper_1.getInitialSyncToken)({ calendarId, authProp: auth });
167
+ if (!(0, shared_1.isNil)(fresh)) {
168
+ yield context.store.put(SYNC_TOKEN_STORE_KEY, fresh);
100
169
  }
101
- if (search_filter && search_filter.trim()) {
102
- const searchTerm = search_filter.toLowerCase().trim();
103
- const summary = (eventData.summary || '').toLowerCase();
104
- const description = (eventData.description || '').toLowerCase();
105
- const location = (eventData.location || '').toLowerCase();
106
- const matchesSearch = summary.includes(searchTerm) ||
107
- description.includes(searchTerm) ||
108
- location.includes(searchTerm);
109
- if (!matchesSearch) {
110
- return [];
111
- }
170
+ return [];
171
+ }
172
+ const { items, nextSyncToken, syncTokenInvalid } = yield (0, helper_1.listEventsWithSyncToken)({
173
+ calendarId,
174
+ syncToken,
175
+ authProp: auth,
176
+ });
177
+ if (syncTokenInvalid) {
178
+ const fresh = yield (0, helper_1.getInitialSyncToken)({ calendarId, authProp: auth });
179
+ if (!(0, shared_1.isNil)(fresh)) {
180
+ yield context.store.put(SYNC_TOKEN_STORE_KEY, fresh);
181
+ }
182
+ return [];
183
+ }
184
+ if (!(0, shared_1.isNil)(nextSyncToken)) {
185
+ yield context.store.put(SYNC_TOKEN_STORE_KEY, nextSyncToken);
186
+ }
187
+ const seenIds = yield context.store.get(SEEN_EVENT_IDS_STORE_KEY);
188
+ const seenSet = new Set(seenIds !== null && seenIds !== void 0 ? seenIds : []);
189
+ const newEvents = [];
190
+ for (const event of items) {
191
+ if (!event.id || event.status === 'cancelled') {
192
+ continue;
193
+ }
194
+ if (seenSet.has(event.id)) {
195
+ continue;
112
196
  }
113
- if (exclude_all_day) {
114
- const isAllDay = ((_a = eventData.start) === null || _a === void 0 ? void 0 : _a.date) && !((_b = eventData.start) === null || _b === void 0 ? void 0 : _b.dateTime);
115
- if (isAllDay) {
116
- return [];
117
- }
197
+ seenSet.add(event.id);
198
+ if (matchesFilters(event, filters)) {
199
+ newEvents.push(event);
118
200
  }
119
- return [eventData];
120
201
  }
121
- else {
122
- return [];
202
+ if (seenSet.size !== ((_a = seenIds === null || seenIds === void 0 ? void 0 : seenIds.length) !== null && _a !== void 0 ? _a : 0)) {
203
+ const bounded = Array.from(seenSet).slice(-SEEN_EVENT_IDS_LIMIT);
204
+ yield context.store.put(SEEN_EVENT_IDS_STORE_KEY, bounded);
123
205
  }
206
+ return newEvents;
124
207
  });
125
208
  },
126
209
  test(context) {
127
210
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
128
- var _a, _b;
129
211
  const auth = context.auth;
130
- const { event_types, search_filter, exclude_all_day } = context.propsValue;
212
+ const filters = {
213
+ event_types: context.propsValue.event_types,
214
+ search_filter: context.propsValue.search_filter,
215
+ exclude_all_day: context.propsValue.exclude_all_day,
216
+ };
131
217
  const latestEvent = yield (0, helper_1.getLatestEvent)(context.propsValue.calendar_id, auth);
132
- if (event_types && event_types.length > 0) {
133
- const eventType = latestEvent.eventType || 'default';
134
- if (!event_types.includes(eventType)) {
135
- return [];
136
- }
137
- }
138
- if (search_filter && search_filter.trim()) {
139
- const searchTerm = search_filter.toLowerCase().trim();
140
- const summary = (latestEvent.summary || '').toLowerCase();
141
- const description = (latestEvent.description || '').toLowerCase();
142
- const location = (latestEvent.location || '').toLowerCase();
143
- const matchesSearch = summary.includes(searchTerm) ||
144
- description.includes(searchTerm) ||
145
- location.includes(searchTerm);
146
- if (!matchesSearch) {
147
- return [];
148
- }
149
- }
150
- if (exclude_all_day) {
151
- const isAllDay = ((_a = latestEvent.start) === null || _a === void 0 ? void 0 : _a.date) && !((_b = latestEvent.start) === null || _b === void 0 ? void 0 : _b.dateTime);
152
- if (isAllDay) {
153
- return [];
154
- }
218
+ if (!matchesFilters(latestEvent, filters)) {
219
+ return [];
155
220
  }
156
221
  return [latestEvent];
157
222
  });
@@ -1 +1 @@
1
- {"version":3,"file":"new-event.js","sourceRoot":"","sources":["../../../../src/lib/triggers/new-event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new-event.js","sourceRoot":"","sources":["../../../../src/lib/triggers/new-event.ts"],"names":[],"mappings":"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"}