@envoy/envoy-integrations-sdk 2.2.0 → 2.2.3
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/dist/resources/InviteResource.d.ts +22 -1
- package/dist/resources/InviteResource.d.ts.map +1 -1
- package/dist/resources/ReservationResource.d.ts +31 -0
- package/dist/resources/ReservationResource.d.ts.map +1 -0
- package/dist/resources/ReservationResource.js +2 -0
- package/dist/sdk/EnvoyUserAPI.d.ts +2 -0
- package/dist/sdk/EnvoyUserAPI.d.ts.map +1 -1
- package/dist/sdk/EnvoyUserAPI.js +38 -0
- package/dist/util/json-api/JSONAPIModel.d.ts +1 -1
- package/dist/util/json-api/JSONAPIModel.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/resources/InviteResource.ts +35 -8
- package/src/resources/ReservationResource.ts +40 -0
- package/src/sdk/EnvoyUserAPI.ts +40 -2
- package/src/util/json-api/JSONAPIModel.ts +4 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import JSONAPIData from '../util/json-api/JSONAPIData';
|
|
1
2
|
import JSONAPIModel from '../util/json-api/JSONAPIModel';
|
|
2
3
|
/**
|
|
3
4
|
* @category API Resource
|
|
@@ -82,5 +83,25 @@ export declare type InviteModel = JSONAPIModel<InviteAttributes, InviteRelations
|
|
|
82
83
|
/**
|
|
83
84
|
* @category API Resource
|
|
84
85
|
*/
|
|
85
|
-
|
|
86
|
+
declare type InviteCreationRequiredRelationships = 'location';
|
|
87
|
+
declare type InviteCreationProhibitedRelationships = 'creator';
|
|
88
|
+
declare type InviteCreationOptionalRelationships = Exclude<InviteRelationships, InviteCreationRequiredRelationships | InviteCreationProhibitedRelationships>;
|
|
89
|
+
/**
|
|
90
|
+
* Here we are going to do a little surgery on JSONAPIModel to allow us to specify required and optional relationships.
|
|
91
|
+
* We do this by first omitting the relationships field from JSONAPIModel, then adding it back in with modified type.
|
|
92
|
+
*/
|
|
93
|
+
export declare type InviteCreationModel = Omit<JSONAPIModel<InviteCreationAttributes, InviteRelationships, 'invites', undefined>, 'relationships'> & {
|
|
94
|
+
relationships: {
|
|
95
|
+
[key in InviteCreationRequiredRelationships]: {
|
|
96
|
+
data: JSONAPIData | Array<JSONAPIData>;
|
|
97
|
+
};
|
|
98
|
+
} & {
|
|
99
|
+
[key in InviteCreationOptionalRelationships]?: {
|
|
100
|
+
data: JSONAPIData | Array<JSONAPIData> | null;
|
|
101
|
+
};
|
|
102
|
+
} & {
|
|
103
|
+
[key in InviteCreationProhibitedRelationships]?: never;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
export {};
|
|
86
107
|
//# sourceMappingURL=InviteResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InviteResource.d.ts","sourceRoot":"","sources":["../../src/resources/InviteResource.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC;AAEzD;;GAEG;AACH,oBAAY,gBAAgB,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE;QAClB,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QACrD,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;YACpC,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE;gBACR,OAAO,CAAC,EAAE;oBACR,IAAI,EAAE,MAAM,CAAC;oBACb,MAAM,EAAE,MAAM,CAAC;iBAChB,
|
|
1
|
+
{"version":3,"file":"InviteResource.d.ts","sourceRoot":"","sources":["../../src/resources/InviteResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import JSONAPIModel from "../util/json-api/JSONAPIModel";
|
|
2
|
+
export interface ReservationAttributes {
|
|
3
|
+
'is-partial-day': boolean;
|
|
4
|
+
'updated-at': number;
|
|
5
|
+
'is-assignable': boolean;
|
|
6
|
+
'name': string;
|
|
7
|
+
'assigned-to': string | null;
|
|
8
|
+
'neighborhood-id': number;
|
|
9
|
+
'created-at': number;
|
|
10
|
+
'neighborhood': number | null;
|
|
11
|
+
'parent-desk-id': string | null;
|
|
12
|
+
'availability': string | null;
|
|
13
|
+
'enabled': boolean;
|
|
14
|
+
'x-pos': number | null;
|
|
15
|
+
'y-pos': number | null;
|
|
16
|
+
}
|
|
17
|
+
export interface ReservationCreationAttributes {
|
|
18
|
+
userId: number;
|
|
19
|
+
deskId?: number | null;
|
|
20
|
+
locationId?: number | null;
|
|
21
|
+
inviteId?: number | null;
|
|
22
|
+
entryId?: number | null;
|
|
23
|
+
startTime?: number | null;
|
|
24
|
+
endTime?: number | null;
|
|
25
|
+
meta?: {
|
|
26
|
+
autoAssignDesk?: boolean;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export declare type ReservationRelationships = 'location' | 'desk' | 'company' | 'floor' | 'employee' | 'entry' | 'invite' | 'user';
|
|
30
|
+
export declare type ReservationModel = JSONAPIModel<ReservationAttributes, ReservationRelationships, 'reservations'>;
|
|
31
|
+
//# sourceMappingURL=ReservationResource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReservationResource.d.ts","sourceRoot":"","sources":["../../src/resources/ReservationResource.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAE5C,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,EAAE;QACL,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,oBAAY,wBAAwB,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5H,oBAAY,gBAAgB,GAAG,YAAY,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,CAAC,CAAA"}
|
|
@@ -11,6 +11,7 @@ import JSONAPIPaginationParams from '../util/json-api/JSONAPIPaginationParams';
|
|
|
11
11
|
import { InviteCreationModel, InviteFilterFields, InviteModel, InviteSortFields } from '../resources/InviteResource';
|
|
12
12
|
import { UserModel } from '../resources/UserResource';
|
|
13
13
|
import { EnvoyMetaAuth } from './EnvoyMeta';
|
|
14
|
+
import { ReservationCreationAttributes, ReservationModel } from "../resources/ReservationResource";
|
|
14
15
|
export declare type EnvoyUserAPIScope = 'flows.read' | 'entries.read' | 'entries.write' | 'invites.read' | 'invites.write' | 'invites.attest' | 'locations.read' | 'companies.read' | 'agreements.read' | 'agreements.write' | 'sign-in-field-pages.read' | 'sign-in-fields.read' | 'sign-in-fields.write' | 'employees.read' | 'employees.write' | 'badges.read' | 'blacklist-filters.read' | 'blacklist-filters.write' | 'tickets.read' | 'tickets.write' | 'spaces.read' | 'reservations.read' | 'reservations.write' | string;
|
|
15
16
|
/**
|
|
16
17
|
* API endpoints for *user-scoped* tokens.
|
|
@@ -83,6 +84,7 @@ export default class EnvoyUserAPI extends EnvoyAPI {
|
|
|
83
84
|
* May also require `invites.attest` scope if setting `attested: true`.
|
|
84
85
|
*/
|
|
85
86
|
createInvite(invite: InviteCreationModel): Promise<InviteModel>;
|
|
87
|
+
createReservation(reservationDetails: ReservationCreationAttributes): Promise<ReservationModel>;
|
|
86
88
|
/**
|
|
87
89
|
* Requires `invites.write` scope.
|
|
88
90
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvoyUserAPI.d.ts","sourceRoot":"","sources":["../../src/sdk/EnvoyUserAPI.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,uBAAuB,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EACL,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EACvE,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"EnvoyUserAPI.d.ts","sourceRoot":"","sources":["../../src/sdk/EnvoyUserAPI.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/EnvoyUserAPI.js
CHANGED
|
@@ -303,6 +303,44 @@ var EnvoyUserAPI = /** @class */ (function (_super) {
|
|
|
303
303
|
});
|
|
304
304
|
});
|
|
305
305
|
};
|
|
306
|
+
EnvoyUserAPI.prototype.createReservation = function (reservationDetails) {
|
|
307
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
308
|
+
var createReservationBody, data;
|
|
309
|
+
return __generator(this, function (_a) {
|
|
310
|
+
switch (_a.label) {
|
|
311
|
+
case 0:
|
|
312
|
+
createReservationBody = {
|
|
313
|
+
data: {
|
|
314
|
+
relationships: __assign({ user: {
|
|
315
|
+
data: {
|
|
316
|
+
type: 'users',
|
|
317
|
+
id: reservationDetails.userId
|
|
318
|
+
}
|
|
319
|
+
} }, (reservationDetails.locationId && {
|
|
320
|
+
location: {
|
|
321
|
+
data: {
|
|
322
|
+
type: 'locations',
|
|
323
|
+
id: reservationDetails.locationId
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
})),
|
|
327
|
+
attributes: __assign(__assign({ 'start-time': reservationDetails.startTime }, (reservationDetails.endTime && {
|
|
328
|
+
'end-time': reservationDetails.endTime
|
|
329
|
+
})), { 'booking-source': 'EXTERNAL_API', 'booking-type': 'visitor' })
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
return [4 /*yield*/, this.axios({
|
|
333
|
+
method: 'POST',
|
|
334
|
+
url: '/a/rms/reservations',
|
|
335
|
+
data: createReservationBody,
|
|
336
|
+
})];
|
|
337
|
+
case 1:
|
|
338
|
+
data = (_a.sent()).data;
|
|
339
|
+
return [2 /*return*/, data.data];
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
};
|
|
306
344
|
/**
|
|
307
345
|
* Requires `invites.write` scope.
|
|
308
346
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONAPIModel.d.ts","sourceRoot":"","sources":["../../../src/util/json-api/JSONAPIModel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC,UAAU,EAAE,aAAa,SAAS,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"JSONAPIModel.d.ts","sourceRoot":"","sources":["../../../src/util/json-api/JSONAPIModel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC,UAAU,EAAE,aAAa,SAAS,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CACxG,SAAQ,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE;SACZ,GAAG,IAAI,aAAa,GAAG;YACtB,IAAI,EAAE,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;SAC/C;KACF,CAAC;CACH"}
|
package/package.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import JSONAPIData from '../util/json-api/JSONAPIData';
|
|
1
2
|
import JSONAPIModel from '../util/json-api/JSONAPIModel';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -32,15 +33,15 @@ export interface InviteAttributes {
|
|
|
32
33
|
auto_approved: boolean;
|
|
33
34
|
report: Array<{
|
|
34
35
|
reason: string;
|
|
35
|
-
result: 'pass' | 'fail' | 'pending'
|
|
36
|
-
source: string
|
|
36
|
+
result: 'pass' | 'fail' | 'pending';
|
|
37
|
+
source: string;
|
|
37
38
|
messages: {
|
|
38
39
|
failure?: {
|
|
39
|
-
text: string
|
|
40
|
-
header: string
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
40
|
+
text: string;
|
|
41
|
+
header: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
}>;
|
|
44
45
|
};
|
|
45
46
|
email?: string;
|
|
46
47
|
'expected-arrival-time'?: string;
|
|
@@ -89,4 +90,30 @@ export type InviteModel = JSONAPIModel<InviteAttributes, InviteRelationships, 'i
|
|
|
89
90
|
/**
|
|
90
91
|
* @category API Resource
|
|
91
92
|
*/
|
|
92
|
-
|
|
93
|
+
type InviteCreationRequiredRelationships = 'location'; // surprising, but flow is not required. if not provided, it will be defaulted
|
|
94
|
+
type InviteCreationProhibitedRelationships = 'creator';
|
|
95
|
+
type InviteCreationOptionalRelationships = Exclude<
|
|
96
|
+
InviteRelationships,
|
|
97
|
+
InviteCreationRequiredRelationships | InviteCreationProhibitedRelationships
|
|
98
|
+
>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Here we are going to do a little surgery on JSONAPIModel to allow us to specify required and optional relationships.
|
|
102
|
+
* We do this by first omitting the relationships field from JSONAPIModel, then adding it back in with modified type.
|
|
103
|
+
*/
|
|
104
|
+
export type InviteCreationModel = Omit<
|
|
105
|
+
JSONAPIModel<InviteCreationAttributes, InviteRelationships, 'invites', undefined>,
|
|
106
|
+
'relationships'
|
|
107
|
+
> & {
|
|
108
|
+
relationships: {
|
|
109
|
+
[key in InviteCreationRequiredRelationships]: {
|
|
110
|
+
data: JSONAPIData | Array<JSONAPIData>;
|
|
111
|
+
};
|
|
112
|
+
} & {
|
|
113
|
+
[key in InviteCreationOptionalRelationships]?: {
|
|
114
|
+
data: JSONAPIData | Array<JSONAPIData> | null;
|
|
115
|
+
};
|
|
116
|
+
} & {
|
|
117
|
+
[key in InviteCreationProhibitedRelationships]?: never;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import JSONAPIModel from "../util/json-api/JSONAPIModel";
|
|
2
|
+
|
|
3
|
+
export interface ReservationAttributes {
|
|
4
|
+
'is-partial-day': boolean;
|
|
5
|
+
'updated-at': number;
|
|
6
|
+
'is-assignable': boolean;
|
|
7
|
+
'name': string;
|
|
8
|
+
'assigned-to': string | null;
|
|
9
|
+
'neighborhood-id': number;
|
|
10
|
+
'created-at': number;
|
|
11
|
+
'neighborhood': number | null;
|
|
12
|
+
'parent-desk-id': string | null;
|
|
13
|
+
'availability': string | null;
|
|
14
|
+
'enabled': boolean;
|
|
15
|
+
'x-pos': number | null;
|
|
16
|
+
'y-pos': number | null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ReservationCreationAttributes {
|
|
20
|
+
// Required fields
|
|
21
|
+
userId: number;
|
|
22
|
+
|
|
23
|
+
// Optional fields
|
|
24
|
+
deskId?: number | null;
|
|
25
|
+
locationId?: number | null;
|
|
26
|
+
inviteId?: number | null;
|
|
27
|
+
entryId?: number | null;
|
|
28
|
+
startTime?: number | null; // Unix timestamp
|
|
29
|
+
endTime?: number | null; // Unix timestamp
|
|
30
|
+
|
|
31
|
+
meta?: {
|
|
32
|
+
autoAssignDesk?: boolean;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export type ReservationRelationships = 'location' | 'desk' | 'company' | 'floor' | 'employee' | 'entry' | 'invite' | 'user';
|
|
37
|
+
|
|
38
|
+
export type ReservationModel = JSONAPIModel<ReservationAttributes, ReservationRelationships, 'reservations'>
|
|
39
|
+
|
|
40
|
+
|
package/src/sdk/EnvoyUserAPI.ts
CHANGED
|
@@ -17,6 +17,7 @@ import { UserModel } from '../resources/UserResource';
|
|
|
17
17
|
import { envoyBaseURL, envoyClientId, envoyClientSecret } from '../constants';
|
|
18
18
|
import { EnvoyMetaAuth } from './EnvoyMeta';
|
|
19
19
|
import { sanitizeAxiosError } from '../util/axiosConstructor';
|
|
20
|
+
import { ReservationCreationAttributes, ReservationModel } from "../resources/ReservationResource";
|
|
20
21
|
|
|
21
22
|
export type EnvoyUserAPIScope =
|
|
22
23
|
'flows.read' |
|
|
@@ -195,6 +196,43 @@ export default class EnvoyUserAPI extends EnvoyAPI {
|
|
|
195
196
|
return data.data;
|
|
196
197
|
}
|
|
197
198
|
|
|
199
|
+
async createReservation(reservationDetails: ReservationCreationAttributes): Promise<ReservationModel> {
|
|
200
|
+
let createReservationBody = {
|
|
201
|
+
data: {
|
|
202
|
+
relationships: {
|
|
203
|
+
user: {
|
|
204
|
+
data: {
|
|
205
|
+
type: 'users',
|
|
206
|
+
id: reservationDetails.userId
|
|
207
|
+
}},
|
|
208
|
+
...(reservationDetails.locationId && {
|
|
209
|
+
location: {
|
|
210
|
+
data: {
|
|
211
|
+
type: 'locations',
|
|
212
|
+
id: reservationDetails.locationId
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
)
|
|
217
|
+
},
|
|
218
|
+
attributes: {
|
|
219
|
+
'start-time': reservationDetails.startTime,
|
|
220
|
+
...(reservationDetails.endTime && {
|
|
221
|
+
'end-time': reservationDetails.endTime
|
|
222
|
+
}),
|
|
223
|
+
'booking-source': 'EXTERNAL_API',
|
|
224
|
+
'booking-type': 'visitor'
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
const { data } = await this.axios({
|
|
229
|
+
method: 'POST',
|
|
230
|
+
url: '/a/rms/reservations',
|
|
231
|
+
data: createReservationBody,
|
|
232
|
+
});
|
|
233
|
+
return data.data;
|
|
234
|
+
}
|
|
235
|
+
|
|
198
236
|
/**
|
|
199
237
|
* Requires `invites.write` scope.
|
|
200
238
|
*/
|
|
@@ -305,7 +343,7 @@ export default class EnvoyUserAPI extends EnvoyAPI {
|
|
|
305
343
|
});
|
|
306
344
|
return data;
|
|
307
345
|
} catch (error) {
|
|
308
|
-
throw sanitizeAxiosError(error);
|
|
346
|
+
throw sanitizeAxiosError(error);
|
|
309
347
|
}
|
|
310
348
|
}
|
|
311
349
|
|
|
@@ -333,7 +371,7 @@ export default class EnvoyUserAPI extends EnvoyAPI {
|
|
|
333
371
|
});
|
|
334
372
|
return data;
|
|
335
373
|
} catch (error) {
|
|
336
|
-
throw sanitizeAxiosError(error);
|
|
374
|
+
throw sanitizeAxiosError(error);
|
|
337
375
|
}
|
|
338
376
|
}
|
|
339
377
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import JSONAPIData from './JSONAPIData';
|
|
2
2
|
|
|
3
|
-
export default interface JSONAPIModel<Attributes, Relationships extends string, Type = string, ID = string>
|
|
3
|
+
export default interface JSONAPIModel<Attributes, Relationships extends string, Type = string, ID = string>
|
|
4
|
+
extends JSONAPIData<Type, ID> {
|
|
4
5
|
attributes: Attributes;
|
|
5
6
|
relationships: {
|
|
6
7
|
[key in Relationships]: {
|
|
7
|
-
data: JSONAPIData
|
|
8
|
+
data: JSONAPIData | Array<JSONAPIData> | null;
|
|
8
9
|
};
|
|
9
|
-
}
|
|
10
|
+
};
|
|
10
11
|
}
|