@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/lib/cjs/enduser.d.ts +24 -0
- package/lib/cjs/enduser.d.ts.map +1 -1
- package/lib/cjs/sdk.d.ts +27 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +3 -1
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts +1 -0
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +76 -5
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/cjs/tests/webhooks_tests.js +15 -12
- package/lib/cjs/tests/webhooks_tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +24 -0
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +27 -0
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +3 -1
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/session.d.ts +1 -0
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/tests/tests.d.ts +1 -0
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +74 -4
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/esm/tests/webhooks_tests.js +15 -12
- package/lib/esm/tests/webhooks_tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/sdk.ts +9 -1
- package/src/tests/tests.ts +54 -3
- package/src/tests/webhooks_tests.ts +15 -12
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
|
}
|
package/src/tests/tests.ts
CHANGED
|
@@ -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
|
-
|
|
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 =
|
|
290
|
-
const secondRemindAt =
|
|
291
|
-
const thirdRemindAt =
|
|
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
|
-
|
|
294
|
+
msBeforeStartTime: firstRemindAt,
|
|
295
295
|
type: 'webhook',
|
|
296
|
+
info: {},
|
|
296
297
|
},
|
|
297
298
|
{
|
|
298
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
340
|
-
!!event?.reminders?.find(r => r.
|
|
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.
|
|
360
|
-
!!event?.reminders?.find(r => r.
|
|
361
|
-
!!event?.reminders?.find(r => r.
|
|
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',
|