@23blocks/block-forms 1.0.4 → 2.1.0

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.
Files changed (56) hide show
  1. package/dist/index.esm.js +687 -88
  2. package/dist/src/lib/forms.block.d.ts +8 -1
  3. package/dist/src/lib/forms.block.d.ts.map +1 -1
  4. package/dist/src/lib/mappers/appointment.mapper.d.ts +4 -0
  5. package/dist/src/lib/mappers/appointment.mapper.d.ts.map +1 -0
  6. package/dist/src/lib/mappers/index.d.ts +7 -0
  7. package/dist/src/lib/mappers/index.d.ts.map +1 -1
  8. package/dist/src/lib/mappers/landing.mapper.d.ts +4 -0
  9. package/dist/src/lib/mappers/landing.mapper.d.ts.map +1 -0
  10. package/dist/src/lib/mappers/mail-template.mapper.d.ts +4 -0
  11. package/dist/src/lib/mappers/mail-template.mapper.d.ts.map +1 -0
  12. package/dist/src/lib/mappers/public-form.mapper.d.ts +5 -0
  13. package/dist/src/lib/mappers/public-form.mapper.d.ts.map +1 -0
  14. package/dist/src/lib/mappers/referral.mapper.d.ts +4 -0
  15. package/dist/src/lib/mappers/referral.mapper.d.ts.map +1 -0
  16. package/dist/src/lib/mappers/subscription.mapper.d.ts +4 -0
  17. package/dist/src/lib/mappers/subscription.mapper.d.ts.map +1 -0
  18. package/dist/src/lib/mappers/survey.mapper.d.ts +4 -0
  19. package/dist/src/lib/mappers/survey.mapper.d.ts.map +1 -0
  20. package/dist/src/lib/services/appointments.service.d.ts +17 -0
  21. package/dist/src/lib/services/appointments.service.d.ts.map +1 -0
  22. package/dist/src/lib/services/form-instances.service.d.ts.map +1 -1
  23. package/dist/src/lib/services/form-schemas.service.d.ts.map +1 -1
  24. package/dist/src/lib/services/form-sets.service.d.ts.map +1 -1
  25. package/dist/src/lib/services/forms.service.d.ts.map +1 -1
  26. package/dist/src/lib/services/index.d.ts +7 -0
  27. package/dist/src/lib/services/index.d.ts.map +1 -1
  28. package/dist/src/lib/services/landings.service.d.ts +13 -0
  29. package/dist/src/lib/services/landings.service.d.ts.map +1 -0
  30. package/dist/src/lib/services/mail-templates.service.d.ts +14 -0
  31. package/dist/src/lib/services/mail-templates.service.d.ts.map +1 -0
  32. package/dist/src/lib/services/public-forms.service.d.ts +11 -0
  33. package/dist/src/lib/services/public-forms.service.d.ts.map +1 -0
  34. package/dist/src/lib/services/referrals.service.d.ts +13 -0
  35. package/dist/src/lib/services/referrals.service.d.ts.map +1 -0
  36. package/dist/src/lib/services/subscriptions.service.d.ts +13 -0
  37. package/dist/src/lib/services/subscriptions.service.d.ts.map +1 -0
  38. package/dist/src/lib/services/surveys.service.d.ts +17 -0
  39. package/dist/src/lib/services/surveys.service.d.ts.map +1 -0
  40. package/dist/src/lib/types/appointment.d.ts +71 -0
  41. package/dist/src/lib/types/appointment.d.ts.map +1 -0
  42. package/dist/src/lib/types/index.d.ts +7 -0
  43. package/dist/src/lib/types/index.d.ts.map +1 -1
  44. package/dist/src/lib/types/landing.d.ts +43 -0
  45. package/dist/src/lib/types/landing.d.ts.map +1 -0
  46. package/dist/src/lib/types/mail-template.d.ts +56 -0
  47. package/dist/src/lib/types/mail-template.d.ts.map +1 -0
  48. package/dist/src/lib/types/public-form.d.ts +27 -0
  49. package/dist/src/lib/types/public-form.d.ts.map +1 -0
  50. package/dist/src/lib/types/referral.d.ts +42 -0
  51. package/dist/src/lib/types/referral.d.ts.map +1 -0
  52. package/dist/src/lib/types/subscription.d.ts +40 -0
  53. package/dist/src/lib/types/subscription.d.ts.map +1 -0
  54. package/dist/src/lib/types/survey.d.ts +44 -0
  55. package/dist/src/lib/types/survey.d.ts.map +1 -0
  56. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { _ } from '@swc/helpers/_/_extends';
2
3
 
3
4
  /**
4
5
  * Parse a string value, returning undefined for empty/undefined
@@ -44,6 +45,15 @@ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
44
45
  const num = Number(value);
45
46
  return isNaN(num) ? 0 : num;
46
47
  }
48
+ /**
49
+ * Parse an optional number value
50
+ */ function parseOptionalNumber(value) {
51
+ if (value === null || value === undefined) {
52
+ return undefined;
53
+ }
54
+ const num = Number(value);
55
+ return isNaN(num) ? undefined : num;
56
+ }
47
57
  /**
48
58
  * Parse entity status
49
59
  */ function parseStatus(value) {
@@ -92,31 +102,25 @@ function createFormsService(transport, _config) {
92
102
  },
93
103
  async create (data) {
94
104
  const response = await transport.post('/forms', {
95
- data: {
96
- type: 'Form',
97
- attributes: {
98
- code: data.code,
99
- name: data.name,
100
- description: data.description,
101
- form_type: data.formType,
102
- payload: data.payload
103
- }
105
+ form: {
106
+ code: data.code,
107
+ name: data.name,
108
+ description: data.description,
109
+ form_type: data.formType,
110
+ payload: data.payload
104
111
  }
105
112
  });
106
113
  return decodeOne(response, formMapper);
107
114
  },
108
115
  async update (uniqueId, data) {
109
116
  const response = await transport.put(`/forms/${uniqueId}`, {
110
- data: {
111
- type: 'Form',
112
- attributes: {
113
- name: data.name,
114
- description: data.description,
115
- form_type: data.formType,
116
- enabled: data.enabled,
117
- status: data.status,
118
- payload: data.payload
119
- }
117
+ form: {
118
+ name: data.name,
119
+ description: data.description,
120
+ form_type: data.formType,
121
+ enabled: data.enabled,
122
+ status: data.status,
123
+ payload: data.payload
120
124
  }
121
125
  });
122
126
  return decodeOne(response, formMapper);
@@ -168,35 +172,29 @@ function createFormSchemasService(transport, _config) {
168
172
  },
169
173
  async create (data) {
170
174
  const response = await transport.post('/form_schemas', {
171
- data: {
172
- type: 'FormSchema',
173
- attributes: {
174
- form_unique_id: data.formUniqueId,
175
- code: data.code,
176
- name: data.name,
177
- description: data.description,
178
- version: data.version,
179
- schema: data.schema,
180
- ui_schema: data.uiSchema,
181
- payload: data.payload
182
- }
175
+ form_schema: {
176
+ form_unique_id: data.formUniqueId,
177
+ code: data.code,
178
+ name: data.name,
179
+ description: data.description,
180
+ version: data.version,
181
+ schema: data.schema,
182
+ ui_schema: data.uiSchema,
183
+ payload: data.payload
183
184
  }
184
185
  });
185
186
  return decodeOne(response, formSchemaMapper);
186
187
  },
187
188
  async update (uniqueId, data) {
188
189
  const response = await transport.put(`/form_schemas/${uniqueId}`, {
189
- data: {
190
- type: 'FormSchema',
191
- attributes: {
192
- name: data.name,
193
- description: data.description,
194
- schema: data.schema,
195
- ui_schema: data.uiSchema,
196
- enabled: data.enabled,
197
- status: data.status,
198
- payload: data.payload
199
- }
190
+ form_schema: {
191
+ name: data.name,
192
+ description: data.description,
193
+ schema: data.schema,
194
+ ui_schema: data.uiSchema,
195
+ enabled: data.enabled,
196
+ status: data.status,
197
+ payload: data.payload
200
198
  }
201
199
  });
202
200
  return decodeOne(response, formSchemaMapper);
@@ -250,29 +248,23 @@ function createFormInstancesService(transport, _config) {
250
248
  },
251
249
  async create (data) {
252
250
  const response = await transport.post('/form_instances', {
253
- data: {
254
- type: 'FormInstance',
255
- attributes: {
256
- form_schema_unique_id: data.formSchemaUniqueId,
257
- form_schema_version: data.formSchemaVersion,
258
- user_unique_id: data.userUniqueId,
259
- data: data.data,
260
- payload: data.payload
261
- }
251
+ form_instance: {
252
+ form_schema_unique_id: data.formSchemaUniqueId,
253
+ form_schema_version: data.formSchemaVersion,
254
+ user_unique_id: data.userUniqueId,
255
+ data: data.data,
256
+ payload: data.payload
262
257
  }
263
258
  });
264
259
  return decodeOne(response, formInstanceMapper);
265
260
  },
266
261
  async update (uniqueId, data) {
267
262
  const response = await transport.put(`/form_instances/${uniqueId}`, {
268
- data: {
269
- type: 'FormInstance',
270
- attributes: {
271
- data: data.data,
272
- enabled: data.enabled,
273
- status: data.status,
274
- payload: data.payload
275
- }
263
+ form_instance: {
264
+ data: data.data,
265
+ enabled: data.enabled,
266
+ status: data.status,
267
+ payload: data.payload
276
268
  }
277
269
  });
278
270
  return decodeOne(response, formInstanceMapper);
@@ -282,14 +274,11 @@ function createFormInstancesService(transport, _config) {
282
274
  },
283
275
  async submit (data) {
284
276
  const response = await transport.post('/form_instances/submit', {
285
- data: {
286
- type: 'FormInstance',
287
- attributes: {
288
- form_schema_unique_id: data.formSchemaUniqueId,
289
- form_schema_version: data.formSchemaVersion,
290
- data: data.data,
291
- payload: data.payload
292
- }
277
+ form_instance: {
278
+ form_schema_unique_id: data.formSchemaUniqueId,
279
+ form_schema_version: data.formSchemaVersion,
280
+ data: data.data,
281
+ payload: data.payload
293
282
  }
294
283
  });
295
284
  return decodeOne(response, formInstanceMapper);
@@ -362,31 +351,25 @@ function createFormSetsService(transport, _config) {
362
351
  },
363
352
  async create (data) {
364
353
  const response = await transport.post('/form_sets', {
365
- data: {
366
- type: 'FormSet',
367
- attributes: {
368
- code: data.code,
369
- name: data.name,
370
- description: data.description,
371
- forms: data.forms,
372
- payload: data.payload
373
- }
354
+ form_set: {
355
+ code: data.code,
356
+ name: data.name,
357
+ description: data.description,
358
+ forms: data.forms,
359
+ payload: data.payload
374
360
  }
375
361
  });
376
362
  return decodeOne(response, formSetMapper);
377
363
  },
378
364
  async update (uniqueId, data) {
379
365
  const response = await transport.put(`/form_sets/${uniqueId}`, {
380
- data: {
381
- type: 'FormSet',
382
- attributes: {
383
- name: data.name,
384
- description: data.description,
385
- forms: data.forms,
386
- enabled: data.enabled,
387
- status: data.status,
388
- payload: data.payload
389
- }
366
+ form_set: {
367
+ name: data.name,
368
+ description: data.description,
369
+ forms: data.forms,
370
+ enabled: data.enabled,
371
+ status: data.status,
372
+ payload: data.payload
390
373
  }
391
374
  });
392
375
  return decodeOne(response, formSetMapper);
@@ -397,12 +380,621 @@ function createFormSetsService(transport, _config) {
397
380
  };
398
381
  }
399
382
 
383
+ const landingMapper = {
384
+ type: 'landing_instance',
385
+ map: (resource)=>{
386
+ var _parseString, _resource_attributes_data;
387
+ return {
388
+ uniqueId: resource.id,
389
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
390
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
391
+ email: parseString(resource.attributes['email']),
392
+ firstName: parseString(resource.attributes['first_name']),
393
+ lastName: parseString(resource.attributes['last_name']),
394
+ phone: parseString(resource.attributes['phone']),
395
+ company: parseString(resource.attributes['company']),
396
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
397
+ status: parseStatus(resource.attributes['status']),
398
+ token: parseString(resource.attributes['token']),
399
+ submittedAt: parseDate(resource.attributes['submitted_at']),
400
+ payload: resource.attributes['payload'],
401
+ createdAt: parseDate(resource.attributes['created_at']),
402
+ updatedAt: parseDate(resource.attributes['updated_at'])
403
+ };
404
+ }
405
+ };
406
+
407
+ function createLandingsService(transport, _config) {
408
+ return {
409
+ async list (formUniqueId, params) {
410
+ const queryParams = {};
411
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
412
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
413
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
414
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
415
+ const response = await transport.get(`/landings/${formUniqueId}/instances`, {
416
+ params: queryParams
417
+ });
418
+ return decodePageResult(response, landingMapper);
419
+ },
420
+ async get (formUniqueId, uniqueId) {
421
+ const response = await transport.get(`/landings/${formUniqueId}/instances/${uniqueId}`);
422
+ return decodeOne(response, landingMapper);
423
+ },
424
+ async create (formUniqueId, data) {
425
+ const response = await transport.post(`/landings/${formUniqueId}/instances`, {
426
+ landing_instance: {
427
+ email: data.email,
428
+ first_name: data.firstName,
429
+ last_name: data.lastName,
430
+ phone: data.phone,
431
+ company: data.company,
432
+ data: data.data,
433
+ payload: data.payload
434
+ }
435
+ });
436
+ return decodeOne(response, landingMapper);
437
+ },
438
+ async update (formUniqueId, uniqueId, data) {
439
+ const response = await transport.put(`/landings/${formUniqueId}/instances/${uniqueId}`, {
440
+ landing_instance: {
441
+ email: data.email,
442
+ first_name: data.firstName,
443
+ last_name: data.lastName,
444
+ phone: data.phone,
445
+ company: data.company,
446
+ data: data.data,
447
+ status: data.status,
448
+ payload: data.payload
449
+ }
450
+ });
451
+ return decodeOne(response, landingMapper);
452
+ },
453
+ async delete (formUniqueId, uniqueId) {
454
+ await transport.delete(`/landings/${formUniqueId}/instances/${uniqueId}`);
455
+ }
456
+ };
457
+ }
458
+
459
+ const subscriptionMapper = {
460
+ type: 'subscription',
461
+ map: (resource)=>{
462
+ var _parseString, _parseString1, _resource_attributes_data;
463
+ return {
464
+ uniqueId: resource.id,
465
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
466
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
467
+ email: (_parseString1 = parseString(resource.attributes['email'])) != null ? _parseString1 : '',
468
+ firstName: parseString(resource.attributes['first_name']),
469
+ lastName: parseString(resource.attributes['last_name']),
470
+ phone: parseString(resource.attributes['phone']),
471
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
472
+ status: parseStatus(resource.attributes['status']),
473
+ subscribedAt: parseDate(resource.attributes['subscribed_at']),
474
+ unsubscribedAt: parseDate(resource.attributes['unsubscribed_at']),
475
+ payload: resource.attributes['payload'],
476
+ createdAt: parseDate(resource.attributes['created_at']),
477
+ updatedAt: parseDate(resource.attributes['updated_at'])
478
+ };
479
+ }
480
+ };
481
+
482
+ function createSubscriptionsService(transport, _config) {
483
+ return {
484
+ async list (formUniqueId, params) {
485
+ const queryParams = {};
486
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
487
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
488
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
489
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
490
+ const response = await transport.get(`/subscriptions/${formUniqueId}/instances`, {
491
+ params: queryParams
492
+ });
493
+ return decodePageResult(response, subscriptionMapper);
494
+ },
495
+ async get (formUniqueId, uniqueId) {
496
+ const response = await transport.get(`/subscriptions/${formUniqueId}/instances/${uniqueId}`);
497
+ return decodeOne(response, subscriptionMapper);
498
+ },
499
+ async create (formUniqueId, data) {
500
+ const response = await transport.post(`/subscriptions/${formUniqueId}/instances`, {
501
+ subscription: {
502
+ email: data.email,
503
+ first_name: data.firstName,
504
+ last_name: data.lastName,
505
+ phone: data.phone,
506
+ data: data.data,
507
+ payload: data.payload
508
+ }
509
+ });
510
+ return decodeOne(response, subscriptionMapper);
511
+ },
512
+ async update (formUniqueId, uniqueId, data) {
513
+ const response = await transport.put(`/subscriptions/${formUniqueId}/instances/${uniqueId}`, {
514
+ subscription: {
515
+ email: data.email,
516
+ first_name: data.firstName,
517
+ last_name: data.lastName,
518
+ phone: data.phone,
519
+ data: data.data,
520
+ status: data.status,
521
+ payload: data.payload
522
+ }
523
+ });
524
+ return decodeOne(response, subscriptionMapper);
525
+ },
526
+ async delete (formUniqueId, uniqueId) {
527
+ await transport.delete(`/subscriptions/${formUniqueId}/instances/${uniqueId}`);
528
+ }
529
+ };
530
+ }
531
+
532
+ const appointmentMapper = {
533
+ type: 'appointment',
534
+ map: (resource)=>{
535
+ var _parseString, _parseDate, _resource_attributes_data;
536
+ return {
537
+ uniqueId: resource.id,
538
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
539
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
540
+ email: parseString(resource.attributes['email']),
541
+ firstName: parseString(resource.attributes['first_name']),
542
+ lastName: parseString(resource.attributes['last_name']),
543
+ phone: parseString(resource.attributes['phone']),
544
+ scheduledAt: (_parseDate = parseDate(resource.attributes['scheduled_at'])) != null ? _parseDate : new Date(),
545
+ duration: parseOptionalNumber(resource.attributes['duration']),
546
+ timezone: parseString(resource.attributes['timezone']),
547
+ location: parseString(resource.attributes['location']),
548
+ notes: parseString(resource.attributes['notes']),
549
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
550
+ status: parseStatus(resource.attributes['status']),
551
+ confirmedAt: parseDate(resource.attributes['confirmed_at']),
552
+ cancelledAt: parseDate(resource.attributes['cancelled_at']),
553
+ payload: resource.attributes['payload'],
554
+ createdAt: parseDate(resource.attributes['created_at']),
555
+ updatedAt: parseDate(resource.attributes['updated_at'])
556
+ };
557
+ }
558
+ };
559
+
560
+ function createAppointmentsService(transport, _config) {
561
+ return {
562
+ async list (formUniqueId, params) {
563
+ const queryParams = {};
564
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
565
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
566
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
567
+ if (params == null ? void 0 : params.fromDate) queryParams['from_date'] = params.fromDate instanceof Date ? params.fromDate.toISOString() : params.fromDate;
568
+ if (params == null ? void 0 : params.toDate) queryParams['to_date'] = params.toDate instanceof Date ? params.toDate.toISOString() : params.toDate;
569
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
570
+ const response = await transport.get(`/appointments/${formUniqueId}/instances`, {
571
+ params: queryParams
572
+ });
573
+ return decodePageResult(response, appointmentMapper);
574
+ },
575
+ async get (formUniqueId, uniqueId) {
576
+ const response = await transport.get(`/appointments/${formUniqueId}/instances/${uniqueId}`);
577
+ return decodeOne(response, appointmentMapper);
578
+ },
579
+ async create (formUniqueId, data) {
580
+ const response = await transport.post(`/appointments/${formUniqueId}/instances`, {
581
+ appointment: {
582
+ email: data.email,
583
+ first_name: data.firstName,
584
+ last_name: data.lastName,
585
+ phone: data.phone,
586
+ scheduled_at: data.scheduledAt instanceof Date ? data.scheduledAt.toISOString() : data.scheduledAt,
587
+ duration: data.duration,
588
+ timezone: data.timezone,
589
+ location: data.location,
590
+ notes: data.notes,
591
+ data: data.data,
592
+ payload: data.payload
593
+ }
594
+ });
595
+ return decodeOne(response, appointmentMapper);
596
+ },
597
+ async update (formUniqueId, uniqueId, data) {
598
+ const response = await transport.put(`/appointments/${formUniqueId}/instances/${uniqueId}`, {
599
+ appointment: {
600
+ email: data.email,
601
+ first_name: data.firstName,
602
+ last_name: data.lastName,
603
+ phone: data.phone,
604
+ scheduled_at: data.scheduledAt instanceof Date ? data.scheduledAt.toISOString() : data.scheduledAt,
605
+ duration: data.duration,
606
+ timezone: data.timezone,
607
+ location: data.location,
608
+ notes: data.notes,
609
+ data: data.data,
610
+ status: data.status,
611
+ payload: data.payload
612
+ }
613
+ });
614
+ return decodeOne(response, appointmentMapper);
615
+ },
616
+ async delete (formUniqueId, uniqueId) {
617
+ await transport.delete(`/appointments/${formUniqueId}/instances/${uniqueId}`);
618
+ },
619
+ async confirm (formUniqueId, uniqueId) {
620
+ const response = await transport.post(`/appointments/${formUniqueId}/instances/${uniqueId}/confirm`, {});
621
+ return decodeOne(response, appointmentMapper);
622
+ },
623
+ async cancel (formUniqueId, uniqueId) {
624
+ const response = await transport.post(`/appointments/${formUniqueId}/instances/${uniqueId}/cancel`, {});
625
+ return decodeOne(response, appointmentMapper);
626
+ },
627
+ async reportList (data) {
628
+ const response = await transport.post('/reports/appointments/list', {
629
+ report: {
630
+ form_unique_id: data.formUniqueId,
631
+ from_date: data.fromDate instanceof Date ? data.fromDate.toISOString() : data.fromDate,
632
+ to_date: data.toDate instanceof Date ? data.toDate.toISOString() : data.toDate,
633
+ status: data.status,
634
+ group_by: data.groupBy
635
+ }
636
+ });
637
+ const result = decodePageResult(response, appointmentMapper);
638
+ return result.data;
639
+ },
640
+ async reportSummary (data) {
641
+ const response = await transport.post('/reports/appointments/summary', {
642
+ report: {
643
+ form_unique_id: data.formUniqueId,
644
+ from_date: data.fromDate instanceof Date ? data.fromDate.toISOString() : data.fromDate,
645
+ to_date: data.toDate instanceof Date ? data.toDate.toISOString() : data.toDate,
646
+ status: data.status,
647
+ group_by: data.groupBy
648
+ }
649
+ });
650
+ return response;
651
+ }
652
+ };
653
+ }
654
+
655
+ const surveyMapper = {
656
+ type: 'survey_instance',
657
+ map: (resource)=>{
658
+ var _parseString, _resource_attributes_data;
659
+ return {
660
+ uniqueId: resource.id,
661
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
662
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
663
+ email: parseString(resource.attributes['email']),
664
+ firstName: parseString(resource.attributes['first_name']),
665
+ lastName: parseString(resource.attributes['last_name']),
666
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
667
+ status: parseStatus(resource.attributes['status']),
668
+ token: parseString(resource.attributes['token']),
669
+ startedAt: parseDate(resource.attributes['started_at']),
670
+ completedAt: parseDate(resource.attributes['completed_at']),
671
+ payload: resource.attributes['payload'],
672
+ createdAt: parseDate(resource.attributes['created_at']),
673
+ updatedAt: parseDate(resource.attributes['updated_at'])
674
+ };
675
+ }
676
+ };
677
+
678
+ function createSurveysService(transport, _config) {
679
+ return {
680
+ async list (formUniqueId, params) {
681
+ const queryParams = {};
682
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
683
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
684
+ if (params == null ? void 0 : params.status) queryParams['status'] = String(params.status);
685
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
686
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
687
+ const response = await transport.get(`/surveys/${formUniqueId}/instances`, {
688
+ params: queryParams
689
+ });
690
+ return decodePageResult(response, surveyMapper);
691
+ },
692
+ async listByStatus (formUniqueId, status, params) {
693
+ const queryParams = {};
694
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
695
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
696
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
697
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
698
+ const response = await transport.get(`/surveys/${formUniqueId}/instances/status/${status}`, {
699
+ params: queryParams
700
+ });
701
+ return decodePageResult(response, surveyMapper);
702
+ },
703
+ async get (formUniqueId, uniqueId) {
704
+ const response = await transport.get(`/surveys/${formUniqueId}/instances/${uniqueId}`);
705
+ return decodeOne(response, surveyMapper);
706
+ },
707
+ async create (formUniqueId, data) {
708
+ const response = await transport.post(`/surveys/${formUniqueId}/instances`, {
709
+ survey_instance: {
710
+ user_unique_id: data.userUniqueId,
711
+ email: data.email,
712
+ first_name: data.firstName,
713
+ last_name: data.lastName,
714
+ data: data.data,
715
+ payload: data.payload
716
+ }
717
+ });
718
+ return decodeOne(response, surveyMapper);
719
+ },
720
+ async update (formUniqueId, uniqueId, data) {
721
+ const response = await transport.put(`/surveys/${formUniqueId}/instances/${uniqueId}`, {
722
+ survey_instance: {
723
+ email: data.email,
724
+ first_name: data.firstName,
725
+ last_name: data.lastName,
726
+ data: data.data,
727
+ status: data.status,
728
+ payload: data.payload
729
+ }
730
+ });
731
+ return decodeOne(response, surveyMapper);
732
+ },
733
+ async delete (formUniqueId, uniqueId) {
734
+ await transport.delete(`/surveys/${formUniqueId}/instances/${uniqueId}`);
735
+ },
736
+ async updateStatus (formUniqueId, uniqueId, data) {
737
+ const response = await transport.put(`/surveys/${formUniqueId}/instances/${uniqueId}/status`, {
738
+ survey_instance: {
739
+ status: data.status
740
+ }
741
+ });
742
+ return decodeOne(response, surveyMapper);
743
+ },
744
+ async resendMagicLink (formUniqueId, uniqueId) {
745
+ await transport.post(`/surveys/${formUniqueId}/instances/${uniqueId}/resend_magic_link`, {});
746
+ },
747
+ async listByUser (userUniqueId, params) {
748
+ const queryParams = {};
749
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
750
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
751
+ if (params == null ? void 0 : params.status) queryParams['status'] = String(params.status);
752
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
753
+ const response = await transport.post('/surveys/users/', _({
754
+ user_unique_id: userUniqueId
755
+ }, queryParams));
756
+ return decodePageResult(response, surveyMapper);
757
+ }
758
+ };
759
+ }
760
+
761
+ const referralMapper = {
762
+ type: 'referral',
763
+ map: (resource)=>{
764
+ var _parseString, _parseString1, _resource_attributes_data;
765
+ return {
766
+ uniqueId: resource.id,
767
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
768
+ referrerUniqueId: parseString(resource.attributes['referrer_unique_id']),
769
+ referrerEmail: parseString(resource.attributes['referrer_email']),
770
+ referrerName: parseString(resource.attributes['referrer_name']),
771
+ refereeEmail: (_parseString1 = parseString(resource.attributes['referee_email'])) != null ? _parseString1 : '',
772
+ refereeName: parseString(resource.attributes['referee_name']),
773
+ refereePhone: parseString(resource.attributes['referee_phone']),
774
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
775
+ status: parseStatus(resource.attributes['status']),
776
+ convertedAt: parseDate(resource.attributes['converted_at']),
777
+ payload: resource.attributes['payload'],
778
+ createdAt: parseDate(resource.attributes['created_at']),
779
+ updatedAt: parseDate(resource.attributes['updated_at'])
780
+ };
781
+ }
782
+ };
783
+
784
+ function createReferralsService(transport, _config) {
785
+ return {
786
+ async list (formUniqueId, params) {
787
+ const queryParams = {};
788
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
789
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
790
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
791
+ if (params == null ? void 0 : params.referrerUniqueId) queryParams['referrer_unique_id'] = params.referrerUniqueId;
792
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
793
+ const response = await transport.get(`/referrals/${formUniqueId}/instances`, {
794
+ params: queryParams
795
+ });
796
+ return decodePageResult(response, referralMapper);
797
+ },
798
+ async get (formUniqueId, uniqueId) {
799
+ const response = await transport.get(`/referrals/${formUniqueId}/instances/${uniqueId}`);
800
+ return decodeOne(response, referralMapper);
801
+ },
802
+ async create (formUniqueId, data) {
803
+ const response = await transport.post(`/referrals/${formUniqueId}/instances`, {
804
+ referral: {
805
+ referrer_unique_id: data.referrerUniqueId,
806
+ referrer_email: data.referrerEmail,
807
+ referrer_name: data.referrerName,
808
+ referee_email: data.refereeEmail,
809
+ referee_name: data.refereeName,
810
+ referee_phone: data.refereePhone,
811
+ data: data.data,
812
+ payload: data.payload
813
+ }
814
+ });
815
+ return decodeOne(response, referralMapper);
816
+ },
817
+ async update (formUniqueId, uniqueId, data) {
818
+ const response = await transport.put(`/referrals/${formUniqueId}/instances/${uniqueId}`, {
819
+ referral: {
820
+ referee_email: data.refereeEmail,
821
+ referee_name: data.refereeName,
822
+ referee_phone: data.refereePhone,
823
+ data: data.data,
824
+ status: data.status,
825
+ payload: data.payload
826
+ }
827
+ });
828
+ return decodeOne(response, referralMapper);
829
+ },
830
+ async delete (formUniqueId, uniqueId) {
831
+ await transport.delete(`/referrals/${formUniqueId}/instances/${uniqueId}`);
832
+ }
833
+ };
834
+ }
835
+
836
+ const mailTemplateMapper = {
837
+ type: 'mail_template',
838
+ map: (resource)=>{
839
+ var _parseString, _parseString1;
840
+ return {
841
+ uniqueId: resource.id,
842
+ name: (_parseString = parseString(resource.attributes['name'])) != null ? _parseString : '',
843
+ subject: (_parseString1 = parseString(resource.attributes['subject'])) != null ? _parseString1 : '',
844
+ htmlContent: parseString(resource.attributes['html_content']),
845
+ textContent: parseString(resource.attributes['text_content']),
846
+ provider: parseString(resource.attributes['provider']),
847
+ providerTemplateId: parseString(resource.attributes['provider_template_id']),
848
+ fromEmail: parseString(resource.attributes['from_email']),
849
+ fromName: parseString(resource.attributes['from_name']),
850
+ replyTo: parseString(resource.attributes['reply_to']),
851
+ status: parseStatus(resource.attributes['status']),
852
+ payload: resource.attributes['payload'],
853
+ createdAt: parseDate(resource.attributes['created_at']),
854
+ updatedAt: parseDate(resource.attributes['updated_at'])
855
+ };
856
+ }
857
+ };
858
+
859
+ function createMailTemplatesService(transport, _config) {
860
+ return {
861
+ async list (params) {
862
+ const queryParams = {};
863
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
864
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
865
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
866
+ if (params == null ? void 0 : params.provider) queryParams['provider'] = params.provider;
867
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
868
+ const response = await transport.get('/mailtemplates/', {
869
+ params: queryParams
870
+ });
871
+ return decodePageResult(response, mailTemplateMapper);
872
+ },
873
+ async get (uniqueId) {
874
+ const response = await transport.get(`/mailtemplates/${uniqueId}`);
875
+ return decodeOne(response, mailTemplateMapper);
876
+ },
877
+ async create (data) {
878
+ const response = await transport.post('/mailtemplates', {
879
+ mail_template: {
880
+ name: data.name,
881
+ subject: data.subject,
882
+ html_content: data.htmlContent,
883
+ text_content: data.textContent,
884
+ provider: data.provider,
885
+ provider_template_id: data.providerTemplateId,
886
+ from_email: data.fromEmail,
887
+ from_name: data.fromName,
888
+ reply_to: data.replyTo,
889
+ payload: data.payload
890
+ }
891
+ });
892
+ return decodeOne(response, mailTemplateMapper);
893
+ },
894
+ async update (uniqueId, data) {
895
+ const response = await transport.put(`/mailtemplates/${uniqueId}`, {
896
+ mail_template: {
897
+ name: data.name,
898
+ subject: data.subject,
899
+ html_content: data.htmlContent,
900
+ text_content: data.textContent,
901
+ provider: data.provider,
902
+ provider_template_id: data.providerTemplateId,
903
+ from_email: data.fromEmail,
904
+ from_name: data.fromName,
905
+ reply_to: data.replyTo,
906
+ status: data.status,
907
+ payload: data.payload
908
+ }
909
+ });
910
+ return decodeOne(response, mailTemplateMapper);
911
+ },
912
+ async delete (uniqueId) {
913
+ await transport.delete(`/mailtemplates/${uniqueId}`);
914
+ },
915
+ async getStats (uniqueId) {
916
+ const response = await transport.get(`/mailtemplates/${uniqueId}/stats`);
917
+ return response;
918
+ }
919
+ };
920
+ }
921
+
922
+ const publicFormMapper = {
923
+ type: 'public_form',
924
+ map: (resource)=>{
925
+ var _parseString, _resource_attributes_schema;
926
+ return {
927
+ uniqueId: resource.id,
928
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
929
+ title: parseString(resource.attributes['title']),
930
+ description: parseString(resource.attributes['description']),
931
+ schema: (_resource_attributes_schema = resource.attributes['schema']) != null ? _resource_attributes_schema : {},
932
+ uiSchema: resource.attributes['ui_schema'],
933
+ settings: resource.attributes['settings'],
934
+ status: parseStatus(resource.attributes['status']),
935
+ payload: resource.attributes['payload'],
936
+ createdAt: parseDate(resource.attributes['created_at']),
937
+ updatedAt: parseDate(resource.attributes['updated_at'])
938
+ };
939
+ }
940
+ };
941
+ const publicFormResponseMapper = {
942
+ type: 'form_response',
943
+ map: (resource)=>{
944
+ var _parseString, _resource_attributes_data;
945
+ return {
946
+ uniqueId: resource.id,
947
+ formUniqueId: (_parseString = parseString(resource.attributes['form_unique_id'])) != null ? _parseString : '',
948
+ data: (_resource_attributes_data = resource.attributes['data']) != null ? _resource_attributes_data : {},
949
+ status: parseStatus(resource.attributes['status']),
950
+ submittedAt: parseDate(resource.attributes['submitted_at']),
951
+ payload: resource.attributes['payload'],
952
+ createdAt: parseDate(resource.attributes['created_at']),
953
+ updatedAt: parseDate(resource.attributes['updated_at'])
954
+ };
955
+ }
956
+ };
957
+
958
+ function createPublicFormsService(transport, _config) {
959
+ return {
960
+ async get (urlId) {
961
+ const response = await transport.get(`/${urlId}/forms/public`);
962
+ return decodeOne(response, publicFormMapper);
963
+ },
964
+ async submit (urlId, data) {
965
+ const response = await transport.post(`/${urlId}/forms/public`, {
966
+ form_submission: {
967
+ data: data.data,
968
+ payload: data.payload
969
+ }
970
+ });
971
+ return decodeOne(response, publicFormResponseMapper);
972
+ },
973
+ async draft (urlId, data) {
974
+ const response = await transport.patch(`/${urlId}/forms/public`, {
975
+ form_draft: {
976
+ data: data.data,
977
+ payload: data.payload
978
+ }
979
+ });
980
+ return decodeOne(response, publicFormResponseMapper);
981
+ }
982
+ };
983
+ }
984
+
400
985
  function createFormsBlock(transport, config) {
401
986
  return {
402
987
  forms: createFormsService(transport),
403
988
  schemas: createFormSchemasService(transport),
404
989
  instances: createFormInstancesService(transport),
405
- sets: createFormSetsService(transport)
990
+ sets: createFormSetsService(transport),
991
+ landings: createLandingsService(transport),
992
+ subscriptions: createSubscriptionsService(transport),
993
+ appointments: createAppointmentsService(transport),
994
+ surveys: createSurveysService(transport),
995
+ referrals: createReferralsService(transport),
996
+ mailTemplates: createMailTemplatesService(transport),
997
+ publicForms: createPublicFormsService(transport)
406
998
  };
407
999
  }
408
1000
  const formsBlockMetadata = {
@@ -413,7 +1005,14 @@ const formsBlockMetadata = {
413
1005
  'Form',
414
1006
  'FormSchema',
415
1007
  'FormInstance',
416
- 'FormSet'
1008
+ 'FormSet',
1009
+ 'Landing',
1010
+ 'Subscription',
1011
+ 'Appointment',
1012
+ 'Survey',
1013
+ 'Referral',
1014
+ 'MailTemplate',
1015
+ 'PublicForm'
417
1016
  ]
418
1017
  };
419
1018