@tellescope/sdk 1.3.38 → 1.3.41

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.
package/src/sdk.ts CHANGED
@@ -101,6 +101,8 @@ const loadDefaultQueries = (s: Session): { [K in keyof ClientModelForName] : API
101
101
  form_fields: defaultQueries(s, 'form_fields'),
102
102
  form_responses: defaultQueries(s, 'form_responses'),
103
103
  calendar_events: defaultQueries(s, 'calendar_events'),
104
+ calendar_event_templates: defaultQueries(s, 'calendar_event_templates'),
105
+ calendar_event_RSVPs: defaultQueries(s, 'calendar_event_RSVPs'),
104
106
  automation_steps: defaultQueries(s, 'automation_steps'),
105
107
  sequence_automations: defaultQueries(s, 'sequence_automations'),
106
108
  automated_actions: defaultQueries(s, 'automated_actions'),
@@ -116,7 +118,6 @@ const loadDefaultQueries = (s: Session): { [K in keyof ClientModelForName] : API
116
118
  comment_likes: defaultQueries(s, 'comment_likes'),
117
119
  organizations: defaultQueries(s, 'organizations'),
118
120
  integrations: defaultQueries(s, 'integrations'),
119
- calendar_event_RSVPs: defaultQueries(s, 'calendar_event_RSVPs'),
120
121
  databases: defaultQueries(s, 'databases'),
121
122
  database_records: defaultQueries(s, 'database_records'),
122
123
  })
@@ -231,6 +232,11 @@ type Queries = { [K in keyof ClientModelForName]: APIQuery<K> } & {
231
232
  Promise<extractFields<CustomActions['emails']['sync_integrations']['returns']>>
232
233
  ),
233
234
  },
235
+ calendar_events: {
236
+ get_external_events_for_user: (args: extractFields<CustomActions['calendar_events']['get_external_events_for_user']['parameters']>) => (
237
+ Promise<extractFields<CustomActions['calendar_events']['get_external_events_for_user']['returns']>>
238
+ ),
239
+ },
234
240
  }
235
241
 
236
242
  export class Session extends SessionManager {
@@ -294,6 +300,8 @@ export class Session extends SessionManager {
294
300
  queries.integrations.refresh_oauth2_session = a => this._POST(`/v1/${schema.integrations.customActions.refresh_oauth2_session.path}`, a)
295
301
 
296
302
  queries.emails.sync_integrations = a => this._POST(`/v1/${schema.emails.customActions.sync_integrations.path}`, a)
303
+
304
+ queries.calendar_events.get_external_events_for_user = a => this._GET(`/v1/${schema.calendar_events.customActions.get_external_events_for_user.path}`, a)
297
305
 
298
306
  this.api = queries
299
307
  }
@@ -490,7 +490,9 @@ const run_generated_tests = async <N extends ModelName>({ queries, model, name,
490
490
  name === 'post_likes'
491
491
  || name === 'users'
492
492
  || name === 'integrations'
493
- ) return // all custom
493
+ || name === 'databases'
494
+ || name === 'database_records'
495
+ ) return
494
496
  if (!defaultEnduser) defaultEnduser = await sdk.api.endusers.createOne({ email: 'default@tellescope.com', phone: "5555555555" })
495
497
 
496
498
  const { instance, updates, filter } = instanceForModel(model)
@@ -2598,8 +2600,59 @@ const post_comments_tests = async () => {
2598
2600
  ])
2599
2601
  }
2600
2602
 
2603
+ export const databases_tests = async () => {
2604
+ log_header("Databases")
2605
+
2606
+ const database = (await sdk.api.databases.createOne({
2607
+ title: "__Test__Database",
2608
+ fields: [{ type: 'string', label: "String"}],
2609
+ // organizationRead: true,
2610
+ }))
2611
+ const databaseNoRead = (await sdk.api.databases.createOne({
2612
+ title: "__Test__Database No Read",
2613
+ fields: [{ type: 'string', label: "String"}],
2614
+ // organizationRead: false,
2615
+ }))
2616
+
2617
+ const databaseRecord = await sdk.api.database_records.createOne({
2618
+ databaseId: database.id,
2619
+ values: [{ type: 'string', value: ' value' }],
2620
+ })
2621
+ await async_test(
2622
+ 'numRecords incremented',
2623
+ () => sdk.api.databases.getOne(database.id),
2624
+ { onResult: c => c.numRecords === 1 },
2625
+ )
2626
+
2627
+ await async_test(
2628
+ 'Non admin can access correctly',
2629
+ () => sdkNonAdmin.api.databases.getOne(database.id),
2630
+ passOnAnyResult,
2631
+ )
2632
+ // await async_test(
2633
+ // 'Non admin cannot access correctly',
2634
+ // () => sdkNonAdmin.api.databases.getOne(databaseNoRead.id),
2635
+ // handleAnyError,
2636
+ // )
2637
+
2638
+ // cleanup and test cache
2639
+ await sdk.api.database_records.deleteOne(databaseRecord.id)
2640
+ await async_test(
2641
+ 'numRecords decremented',
2642
+ () => sdk.api.databases.getOne(database.id),
2643
+ { onResult: c => c.numRecords === 0 },
2644
+ )
2645
+ await Promise.all([
2646
+ sdk.api.databases.deleteOne(database.id),
2647
+ sdk.api.databases.deleteOne(databaseNoRead.id),
2648
+ ])
2649
+ }
2650
+
2601
2651
  const NO_TEST = () => {}
2602
2652
  const tests: { [K in keyof ClientModelForName]: () => void } = {
2653
+ calendar_event_templates: NO_TEST,
2654
+ databases: databases_tests,
2655
+ database_records: NO_TEST,
2603
2656
  post_comments: post_comments_tests,
2604
2657
  journeys: journey_tests,
2605
2658
  calendar_event_RSVPs: calendar_event_RSVPs_tests,
@@ -2636,8 +2689,6 @@ const tests: { [K in keyof ClientModelForName]: () => void } = {
2636
2689
  comment_likes: NO_TEST,
2637
2690
  organizations: NO_TEST,
2638
2691
  integrations: NO_TEST,
2639
- databases: NO_TEST,
2640
- database_records: NO_TEST,
2641
2692
  };
2642
2693
 
2643
2694
  (async () => {
@@ -286,22 +286,25 @@ let CALENDAR_EVENT_WEBHOOK_COUNT = 0 //
286
286
  const calendar_event_reminders_tests = async (isSubscribed: boolean) => {
287
287
  log_header(`Calendar Event Reminders, isSubscribed=${isSubscribed}`)
288
288
 
289
- const firstRemindAt = Date.now()
290
- const secondRemindAt = Date.now() + AUTOMATION_POLLING_DELAY_MS * 2
291
- const thirdRemindAt = Date.now() + AUTOMATION_POLLING_DELAY_MS * 4
289
+ const firstRemindAt = 0
290
+ const secondRemindAt = AUTOMATION_POLLING_DELAY_MS * 2
291
+ const thirdRemindAt = AUTOMATION_POLLING_DELAY_MS * 4
292
292
  const sampleCalendarEventReminders: CalendarEvent['reminders'] = [
293
293
  {
294
- remindAt: firstRemindAt,
294
+ msBeforeStartTime: firstRemindAt,
295
295
  type: 'webhook',
296
+ info: {},
296
297
  },
297
298
  {
298
- remindAt: thirdRemindAt, // include before secondRemindAt as test that order doesn't matter
299
+ msBeforeStartTime: thirdRemindAt, // include before secondRemindAt as test that order doesn't matter
299
300
  type: 'webhook',
301
+ info: {},
300
302
  },
301
303
  {
302
304
  didRemind: false, // test to ensure order of fields doesn't matter in automations query
303
- remindAt: secondRemindAt,
305
+ msBeforeStartTime: secondRemindAt,
304
306
  type: 'webhook',
307
+ info: {},
305
308
  }
306
309
  ]
307
310
  const calendarEvent = await sdk.api.calendar_events.createOne({
@@ -317,7 +320,7 @@ const calendar_event_reminders_tests = async (isSubscribed: boolean) => {
317
320
  await check_next_webhook(
318
321
  ({ event }) => (
319
322
  event?.id === calendarEvent.id &&
320
- !!event?.reminders?.find(r => r.remindAt === firstRemindAt )
323
+ !!event?.reminders?.find(r => r.msBeforeStartTime === firstRemindAt )
321
324
  ),
322
325
  'Calendar event successful webhook error',
323
326
  'First calendar event reminder received',
@@ -336,8 +339,8 @@ const calendar_event_reminders_tests = async (isSubscribed: boolean) => {
336
339
  await check_next_webhook(
337
340
  ({ event }) => (
338
341
  event?.id === calendarEvent.id &&
339
- !!event?.reminders?.find(r => r.remindAt === secondRemindAt ) &&
340
- !!event?.reminders?.find(r => r.remindAt === firstRemindAt && r.didRemind === true )
342
+ !!event?.reminders?.find(r => r.msBeforeStartTime === secondRemindAt ) &&
343
+ !!event?.reminders?.find(r => r.msBeforeStartTime === firstRemindAt && r.didRemind === true )
341
344
  ),
342
345
  'Calendar event successful webhook error',
343
346
  'First calendar event reminder received',
@@ -356,9 +359,9 @@ const calendar_event_reminders_tests = async (isSubscribed: boolean) => {
356
359
  await check_next_webhook(
357
360
  ({ event }) => (
358
361
  event?.id === calendarEvent.id &&
359
- !!event?.reminders?.find(r => r.remindAt === thirdRemindAt ) &&
360
- !!event?.reminders?.find(r => r.remindAt === secondRemindAt && r.didRemind === true ) &&
361
- !!event?.reminders?.find(r => r.remindAt === firstRemindAt && r.didRemind === true )
362
+ !!event?.reminders?.find(r => r.msBeforeStartTime === thirdRemindAt ) &&
363
+ !!event?.reminders?.find(r => r.msBeforeStartTime === secondRemindAt && r.didRemind === true ) &&
364
+ !!event?.reminders?.find(r => r.msBeforeStartTime === firstRemindAt && r.didRemind === true )
362
365
  ),
363
366
  'Calendar event successful webhook error',
364
367
  'First calendar event reminder received',