@envoy/envoy-integrations-sdk 2.0.0-beta.11 → 2.0.0-beta.12

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.
@@ -0,0 +1,38 @@
1
+ import { Sync } from 'factory.ts';
2
+ import InvitePayload from '../payloads/InvitePayload';
3
+ import EnvoyInviteEvent from '../internal/EnvoyInviteEvent';
4
+ import { EnvoyUserAPIScope } from '../sdk/EnvoyUserAPI';
5
+ export declare type InvitePayloadFactoryVisitorOptions = {
6
+ isProtectFlow: false;
7
+ hasEmail: boolean;
8
+ hasHost: boolean;
9
+ preregistrationComplete: boolean;
10
+ hasPhoto?: boolean;
11
+ };
12
+ export declare type InvitePayloadFactoryProtectOptions = {
13
+ isProtectFlow: true;
14
+ preregistrationComplete: boolean;
15
+ hasPhoto?: boolean;
16
+ };
17
+ export declare type InvitePayloadFactoryOptions = InvitePayloadFactoryVisitorOptions | InvitePayloadFactoryProtectOptions;
18
+ export declare const inviteEventBodyFactoryDefaultIds: {
19
+ location: string;
20
+ company: string;
21
+ flow: string;
22
+ invite: string;
23
+ device: string;
24
+ employee: string;
25
+ };
26
+ export declare function invitePayloadFactory(options: InvitePayloadFactoryOptions, ids?: Partial<typeof inviteEventBodyFactoryDefaultIds>): Sync.Factory<InvitePayload>;
27
+ export declare type InviteEventBodyFactoryOptions<Config extends Record<string, unknown> = Record<string, never>> = {
28
+ event: EnvoyInviteEvent;
29
+ config: Partial<Config>;
30
+ payloadOptions: InvitePayloadFactoryOptions;
31
+ scope?: Array<EnvoyUserAPIScope>;
32
+ ids?: Partial<typeof inviteEventBodyFactoryDefaultIds>;
33
+ };
34
+ export default function entryEventBodyFactory<Config extends Record<string, unknown> = Record<string, never>>(options: InviteEventBodyFactoryOptions<Config>): {
35
+ meta: import("..").EnvoyEventMeta<string, Record<string, unknown>>;
36
+ payload: InvitePayload;
37
+ };
38
+ //# sourceMappingURL=inviteEventBodyFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inviteEventBodyFactory.d.ts","sourceRoot":"","sources":["../../src/factories/inviteEventBodyFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,YAAY,CAAC;AAGxC,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,oBAAY,kCAAkC,GAAG;IAC/C,aAAa,EAAE,KAAK,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAC/C,aAAa,EAAE,IAAI,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,2BAA2B,GAAG,kCAAkC,GAAG,kCAAkC,CAAC;AAElH,eAAO,MAAM,gCAAgC;;;;;;;CAO5C,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,EACpC,GAAG,GAAE,OAAO,CAAC,OAAO,gCAAgC,CAAoC,GACvF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAgD7B;AAED,oBAAY,6BAA6B,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;IAC1G,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,cAAc,EAAE,2BAA2B,CAAC;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,gCAAgC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC1G,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC;;;EAW/C"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.invitePayloadFactory = exports.inviteEventBodyFactoryDefaultIds = void 0;
18
+ var factory_ts_1 = require("factory.ts");
19
+ var faker_1 = __importDefault(require("faker"));
20
+ var eventBodyFactory_1 = __importDefault(require("./eventBodyFactory"));
21
+ exports.inviteEventBodyFactoryDefaultIds = {
22
+ location: '1',
23
+ company: '1',
24
+ flow: '1',
25
+ invite: '1',
26
+ device: '1',
27
+ employee: '1',
28
+ };
29
+ function invitePayloadFactory(options, ids) {
30
+ if (ids === void 0) { ids = exports.inviteEventBodyFactoryDefaultIds; }
31
+ var signedInDate = faker_1.default.date.past();
32
+ var allIds = __assign(__assign({}, exports.inviteEventBodyFactoryDefaultIds), ids);
33
+ return factory_ts_1.Sync.makeFactory({
34
+ id: factory_ts_1.each(function (i) { return "" + (i + 1); }),
35
+ type: 'invites',
36
+ attributes: {
37
+ 'employee-screening-flow': options.isProtectFlow,
38
+ 'full-name': faker_1.default.name.findName(),
39
+ email: (options.isProtectFlow || options.hasEmail) ? faker_1.default.internet.email() : null,
40
+ 'inviter-name': (!options.isProtectFlow && options.hasHost) ? faker_1.default.name.findName() : null,
41
+ 'inviter-email': (!options.isProtectFlow && options.hasHost) ? faker_1.default.internet.email() : null,
42
+ 'expected-arrival-time': faker_1.default.date.future().toISOString(),
43
+ 'private-notes': null,
44
+ arrived: false,
45
+ 'been-here-before': false,
46
+ 'flow-name': options.isProtectFlow ? 'Employee registration' : 'Visitor',
47
+ 'flow-id': allIds.flow,
48
+ 'user-data': [],
49
+ 'secret-token': faker_1.default.random.alphaNumeric(10),
50
+ 'edit-token': faker_1.default.random.alphaNumeric(10),
51
+ 'photo-url': faker_1.default.image.avatar(),
52
+ 'qr-code': null,
53
+ 'qr-code-sent-at': null,
54
+ 'preregistration-complete': options.preregistrationComplete,
55
+ 'reminder-sent-at': null,
56
+ },
57
+ relationships: {
58
+ location: {
59
+ data: {
60
+ id: allIds.location,
61
+ type: 'locations',
62
+ },
63
+ },
64
+ flow: {
65
+ data: {
66
+ id: allIds.flow,
67
+ type: 'flows',
68
+ },
69
+ },
70
+ employee: (options.isProtectFlow || options.hasHost) ? {
71
+ data: {
72
+ id: allIds.employee,
73
+ type: 'employees',
74
+ },
75
+ } : undefined,
76
+ },
77
+ });
78
+ }
79
+ exports.invitePayloadFactory = invitePayloadFactory;
80
+ function entryEventBodyFactory(options) {
81
+ var _a, _b;
82
+ var ids = options.ids || exports.inviteEventBodyFactoryDefaultIds;
83
+ return eventBodyFactory_1.default({
84
+ event: options.event,
85
+ config: options.config,
86
+ scope: options.scope || [],
87
+ locationId: ((_a = options.ids) === null || _a === void 0 ? void 0 : _a.location) || exports.inviteEventBodyFactoryDefaultIds.location,
88
+ companyId: ((_b = options.ids) === null || _b === void 0 ? void 0 : _b.company) || exports.inviteEventBodyFactoryDefaultIds.company,
89
+ payload: invitePayloadFactory(options.payloadOptions, ids).build(),
90
+ });
91
+ }
92
+ exports.default = entryEventBodyFactory;
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import './constants';
2
2
  import EnvoyPluginStoragePipeline from './base/EnvoyPluginStoragePipeline';
3
3
  import entryEventBodyFactory from './factories/entryEventBodyFactory';
4
4
  import eventBodyFactory from './factories/eventBodyFactory';
5
+ import inviteEventBodyFactory from './factories/inviteEventBodyFactory';
5
6
  import routeBodyFactory from './factories/routeBodyFactory';
6
7
  import HttpStatus from './internal/HttpStatus';
7
8
  import EnvoyPluginJobMock from './mocks/EnvoyPluginJobMock';
@@ -41,5 +42,5 @@ export * from './sdk/filters';
41
42
  export * from './sdk/handlers';
42
43
  export * from './sdk/middleware';
43
44
  export * from './util/EnvoySignatureVerifier';
44
- export { EntryPayload, InvitePayload, EnvoyJWT, EnvoyMeta, EnvoyPluginJob, EnvoyPluginJobMock, EnvoyPluginSDK, EnvoyPluginStorage, EnvoyPluginStoragePipeline, EnvoyPluginStoragePipelineMock, EnvoyRequest, EnvoyResponse, EnvoySignatureVerifier, EnvoyStorageItem, EnvoyPluginAPI, EnvoyUserAPI, JSONAPIData, HttpStatus, entryEventBodyFactory, eventBodyFactory, routeBodyFactory, };
45
+ export { EntryPayload, InvitePayload, EnvoyJWT, EnvoyMeta, EnvoyPluginJob, EnvoyPluginJobMock, EnvoyPluginSDK, EnvoyPluginStorage, EnvoyPluginStoragePipeline, EnvoyPluginStoragePipelineMock, EnvoyRequest, EnvoyResponse, EnvoySignatureVerifier, EnvoyStorageItem, EnvoyPluginAPI, EnvoyUserAPI, JSONAPIData, HttpStatus, entryEventBodyFactory, eventBodyFactory, inviteEventBodyFactory, routeBodyFactory, };
45
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,0BAA0B,MAAM,mCAAmC,CAAC;AAE3E,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AACtE,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAE5D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAE/C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,8BAA8B,MAAM,wCAAwC,CAAC;AAEpF,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAErD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AAEtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,8BAA8B,EAC9B,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,0BAA0B,MAAM,mCAAmC,CAAC;AAE3E,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AACtE,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AACxE,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAE5D,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAE/C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,8BAA8B,MAAM,wCAAwC,CAAC;AAEpF,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAErD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AAEtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,8BAA8B,EAC9B,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,CAAC"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.routeBodyFactory = exports.eventBodyFactory = exports.entryEventBodyFactory = exports.HttpStatus = exports.EnvoyUserAPI = exports.EnvoyPluginAPI = exports.EnvoySignatureVerifier = exports.EnvoyPluginStoragePipelineMock = exports.EnvoyPluginStoragePipeline = exports.EnvoyPluginStorage = exports.EnvoyPluginSDK = exports.EnvoyPluginJobMock = exports.EnvoyPluginJob = exports.EnvoyJWT = void 0;
16
+ exports.routeBodyFactory = exports.inviteEventBodyFactory = exports.eventBodyFactory = exports.entryEventBodyFactory = exports.HttpStatus = exports.EnvoyUserAPI = exports.EnvoyPluginAPI = exports.EnvoySignatureVerifier = exports.EnvoyPluginStoragePipelineMock = exports.EnvoyPluginStoragePipeline = exports.EnvoyPluginStorage = exports.EnvoyPluginSDK = exports.EnvoyPluginJobMock = exports.EnvoyPluginJob = exports.EnvoyJWT = void 0;
17
17
  require("./constants");
18
18
  var EnvoyPluginStoragePipeline_1 = __importDefault(require("./base/EnvoyPluginStoragePipeline"));
19
19
  exports.EnvoyPluginStoragePipeline = EnvoyPluginStoragePipeline_1.default;
@@ -21,6 +21,8 @@ var entryEventBodyFactory_1 = __importDefault(require("./factories/entryEventBod
21
21
  exports.entryEventBodyFactory = entryEventBodyFactory_1.default;
22
22
  var eventBodyFactory_1 = __importDefault(require("./factories/eventBodyFactory"));
23
23
  exports.eventBodyFactory = eventBodyFactory_1.default;
24
+ var inviteEventBodyFactory_1 = __importDefault(require("./factories/inviteEventBodyFactory"));
25
+ exports.inviteEventBodyFactory = inviteEventBodyFactory_1.default;
24
26
  var routeBodyFactory_1 = __importDefault(require("./factories/routeBodyFactory"));
25
27
  exports.routeBodyFactory = routeBodyFactory_1.default;
26
28
  var HttpStatus_1 = __importDefault(require("./internal/HttpStatus"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envoy/envoy-integrations-sdk",
3
- "version": "2.0.0-beta.11",
3
+ "version": "2.0.0-beta.12",
4
4
  "description": "SDK for building Envoy integrations.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,107 @@
1
+ import { Sync, each } from 'factory.ts';
2
+ import faker from 'faker';
3
+
4
+ import InvitePayload from '../payloads/InvitePayload';
5
+ import EnvoyInviteEvent from '../internal/EnvoyInviteEvent';
6
+ import { EnvoyUserAPIScope } from '../sdk/EnvoyUserAPI';
7
+ import eventBodyFactory from './eventBodyFactory';
8
+
9
+ export type InvitePayloadFactoryVisitorOptions = {
10
+ isProtectFlow: false,
11
+ hasEmail: boolean,
12
+ hasHost: boolean,
13
+ preregistrationComplete: boolean,
14
+ hasPhoto?: boolean,
15
+ };
16
+
17
+ export type InvitePayloadFactoryProtectOptions = {
18
+ isProtectFlow: true,
19
+ preregistrationComplete: boolean,
20
+ hasPhoto?: boolean,
21
+ };
22
+
23
+ export type InvitePayloadFactoryOptions = InvitePayloadFactoryVisitorOptions | InvitePayloadFactoryProtectOptions;
24
+
25
+ export const inviteEventBodyFactoryDefaultIds = {
26
+ location: '1',
27
+ company: '1',
28
+ flow: '1',
29
+ invite: '1',
30
+ device: '1',
31
+ employee: '1',
32
+ };
33
+
34
+ export function invitePayloadFactory(
35
+ options: InvitePayloadFactoryOptions,
36
+ ids: Partial<typeof inviteEventBodyFactoryDefaultIds> = inviteEventBodyFactoryDefaultIds,
37
+ ): Sync.Factory<InvitePayload> {
38
+ const signedInDate = faker.date.past();
39
+ const allIds = { ...inviteEventBodyFactoryDefaultIds, ...ids };
40
+ return Sync.makeFactory<InvitePayload>({
41
+ id: each((i) => `${i + 1}`),
42
+ type: 'invites',
43
+ attributes: {
44
+ 'employee-screening-flow': options.isProtectFlow,
45
+ 'full-name': faker.name.findName(),
46
+ email: (options.isProtectFlow || options.hasEmail) ? faker.internet.email() : null,
47
+ 'inviter-name': (!options.isProtectFlow && options.hasHost) ? faker.name.findName() : null,
48
+ 'inviter-email': (!options.isProtectFlow && options.hasHost) ? faker.internet.email() : null,
49
+ 'expected-arrival-time': faker.date.future().toISOString(),
50
+ 'private-notes': null,
51
+ arrived: false,
52
+ 'been-here-before': false,
53
+ 'flow-name': options.isProtectFlow ? 'Employee registration' : 'Visitor',
54
+ 'flow-id': allIds.flow,
55
+ 'user-data': [] as Array<{ field: string, value: string | null }>,
56
+ 'secret-token': faker.random.alphaNumeric(10),
57
+ 'edit-token': faker.random.alphaNumeric(10),
58
+ 'photo-url': faker.image.avatar(),
59
+ 'qr-code': null,
60
+ 'qr-code-sent-at': null,
61
+ 'preregistration-complete': options.preregistrationComplete,
62
+ 'reminder-sent-at': null,
63
+ },
64
+ relationships: {
65
+ location: {
66
+ data: {
67
+ id: allIds.location,
68
+ type: 'locations',
69
+ },
70
+ },
71
+ flow: {
72
+ data: {
73
+ id: allIds.flow,
74
+ type: 'flows',
75
+ },
76
+ },
77
+ employee: (options.isProtectFlow || options.hasHost) ? {
78
+ data: {
79
+ id: allIds.employee,
80
+ type: 'employees',
81
+ },
82
+ } : undefined,
83
+ },
84
+ });
85
+ }
86
+
87
+ export type InviteEventBodyFactoryOptions<Config extends Record<string, unknown> = Record<string, never>> = {
88
+ event: EnvoyInviteEvent,
89
+ config: Partial<Config>,
90
+ payloadOptions: InvitePayloadFactoryOptions,
91
+ scope?: Array<EnvoyUserAPIScope>,
92
+ ids?: Partial<typeof inviteEventBodyFactoryDefaultIds>,
93
+ };
94
+
95
+ export default function entryEventBodyFactory<Config extends Record<string, unknown> = Record<string, never>>(
96
+ options: InviteEventBodyFactoryOptions<Config>,
97
+ ) {
98
+ const ids = options.ids || inviteEventBodyFactoryDefaultIds;
99
+ return eventBodyFactory<EnvoyInviteEvent, Config, InvitePayload>({
100
+ event: options.event,
101
+ config: options.config,
102
+ scope: options.scope || [],
103
+ locationId: options.ids?.location || inviteEventBodyFactoryDefaultIds.location,
104
+ companyId: options.ids?.company || inviteEventBodyFactoryDefaultIds.company,
105
+ payload: invitePayloadFactory(options.payloadOptions, ids).build(),
106
+ });
107
+ }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ import EnvoyPluginStoragePipeline from './base/EnvoyPluginStoragePipeline';
4
4
 
5
5
  import entryEventBodyFactory from './factories/entryEventBodyFactory';
6
6
  import eventBodyFactory from './factories/eventBodyFactory';
7
+ import inviteEventBodyFactory from './factories/inviteEventBodyFactory';
7
8
  import routeBodyFactory from './factories/routeBodyFactory';
8
9
 
9
10
  import HttpStatus from './internal/HttpStatus';
@@ -74,5 +75,6 @@ export {
74
75
  HttpStatus,
75
76
  entryEventBodyFactory,
76
77
  eventBodyFactory,
78
+ inviteEventBodyFactory,
77
79
  routeBodyFactory,
78
80
  };