@twin.org/auditable-item-stream-service 0.0.3-next.2 → 0.0.3-next.21
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/README.md +2 -2
- package/dist/es/auditableItemStreamRoutes.js +471 -130
- package/dist/es/auditableItemStreamRoutes.js.map +1 -1
- package/dist/es/auditableItemStreamService.js +330 -138
- package/dist/es/auditableItemStreamService.js.map +1 -1
- package/dist/es/entities/auditableItemStream.js +20 -6
- package/dist/es/entities/auditableItemStream.js.map +1 -1
- package/dist/es/models/IAuditableItemStreamServiceConstructorOptions.js.map +1 -1
- package/dist/es/models/IAuditableItemStreamServiceContext.js.map +1 -1
- package/dist/types/auditableItemStreamRoutes.d.ts +33 -1
- package/dist/types/auditableItemStreamService.d.ts +44 -37
- package/dist/types/entities/auditableItemStream.d.ts +12 -3
- package/dist/types/models/IAuditableItemStreamServiceConstructorOptions.d.ts +4 -0
- package/dist/types/models/IAuditableItemStreamServiceContext.d.ts +4 -0
- package/docs/changelog.md +355 -77
- package/docs/examples.md +211 -1
- package/docs/open-api/spec.json +839 -177
- package/docs/reference/classes/AuditableItemStream.md +32 -16
- package/docs/reference/classes/AuditableItemStreamEntry.md +13 -13
- package/docs/reference/classes/AuditableItemStreamService.md +107 -84
- package/docs/reference/functions/auditableItemStreamClose.md +31 -0
- package/docs/reference/functions/auditableItemStreamListEntriesNoStream.md +31 -0
- package/docs/reference/functions/auditableItemStreamListEntryObjectsNoStream.md +31 -0
- package/docs/reference/functions/auditableItemStreamRemoveProof.md +31 -0
- package/docs/reference/index.md +4 -0
- package/docs/reference/interfaces/IAuditableItemStreamServiceConfig.md +2 -2
- package/docs/reference/interfaces/IAuditableItemStreamServiceConstructorOptions.md +18 -10
- package/locales/en.json +6 -1
- package/package.json +6 -5
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0.
|
|
3
3
|
import { HttpParameterHelper } from "@twin.org/api-models";
|
|
4
4
|
import { AuditableItemStreamContexts, AuditableItemStreamTypes } from "@twin.org/auditable-item-stream-models";
|
|
5
|
-
import { Coerce, ComponentFactory, Guards } from "@twin.org/core";
|
|
5
|
+
import { Coerce, ComponentFactory, Guards, Is } from "@twin.org/core";
|
|
6
6
|
import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
|
|
7
|
-
import { HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
|
|
7
|
+
import { HeaderHelper, HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
|
|
8
8
|
/**
|
|
9
9
|
* The source used when communicating about these routes.
|
|
10
10
|
*/
|
|
@@ -39,21 +39,31 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
39
39
|
id: "auditableItemStreamCreateRequestExample",
|
|
40
40
|
request: {
|
|
41
41
|
body: {
|
|
42
|
+
"@context": [
|
|
43
|
+
SchemaOrgContexts.Context,
|
|
44
|
+
AuditableItemStreamContexts.Context,
|
|
45
|
+
AuditableItemStreamContexts.ContextCommon
|
|
46
|
+
],
|
|
47
|
+
type: AuditableItemStreamTypes.Stream,
|
|
42
48
|
annotationObject: {
|
|
43
49
|
"@context": "https://schema.org",
|
|
44
50
|
"@type": "Note",
|
|
45
51
|
content: "This is a simple note"
|
|
46
52
|
},
|
|
47
|
-
entries:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
entries: {
|
|
54
|
+
type: SchemaOrgTypes.ItemList,
|
|
55
|
+
[SchemaOrgTypes.ItemListElement]: [
|
|
56
|
+
{
|
|
57
|
+
type: AuditableItemStreamTypes.StreamEntry,
|
|
58
|
+
entryObject: {
|
|
59
|
+
"@context": "https://schema.org",
|
|
60
|
+
"@type": "Event",
|
|
61
|
+
startDate: "2011-04-09T20:00:00Z",
|
|
62
|
+
description: "A description of the event"
|
|
63
|
+
}
|
|
54
64
|
}
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
]
|
|
66
|
+
}
|
|
57
67
|
}
|
|
58
68
|
}
|
|
59
69
|
}
|
|
@@ -69,7 +79,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
69
79
|
response: {
|
|
70
80
|
statusCode: HttpStatusCode.created,
|
|
71
81
|
headers: {
|
|
72
|
-
[HeaderTypes.Location]: "ais
|
|
82
|
+
[HeaderTypes.Location]: "ais%3A1234567890"
|
|
73
83
|
}
|
|
74
84
|
}
|
|
75
85
|
}
|
|
@@ -109,8 +119,9 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
109
119
|
response: {
|
|
110
120
|
body: {
|
|
111
121
|
"@context": [
|
|
112
|
-
|
|
113
|
-
AuditableItemStreamContexts.
|
|
122
|
+
SchemaOrgContexts.Context,
|
|
123
|
+
AuditableItemStreamContexts.Context,
|
|
124
|
+
AuditableItemStreamContexts.ContextCommon
|
|
114
125
|
],
|
|
115
126
|
type: AuditableItemStreamTypes.Stream,
|
|
116
127
|
id: "ais:1234567890",
|
|
@@ -124,25 +135,29 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
124
135
|
organizationIdentity: "did:iota:1234567890",
|
|
125
136
|
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
126
137
|
immutableInterval: 10,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
138
|
+
numberOfItems: 1,
|
|
139
|
+
entries: {
|
|
140
|
+
type: SchemaOrgTypes.ItemList,
|
|
141
|
+
[SchemaOrgTypes.ItemListElement]: [
|
|
142
|
+
{
|
|
143
|
+
"@context": [
|
|
144
|
+
AuditableItemStreamContexts.Context,
|
|
145
|
+
AuditableItemStreamContexts.ContextCommon
|
|
146
|
+
],
|
|
147
|
+
type: AuditableItemStreamTypes.StreamEntry,
|
|
148
|
+
id: "tst:1234567890",
|
|
149
|
+
dateCreated: "2024-08-22T11:55:16.271Z",
|
|
150
|
+
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
151
|
+
index: 0,
|
|
152
|
+
entryObject: {
|
|
153
|
+
"@context": "https://schema.org",
|
|
154
|
+
"@type": "Event",
|
|
155
|
+
startDate: "2011-04-09T20:00:00Z",
|
|
156
|
+
description: "A description of the event"
|
|
157
|
+
}
|
|
143
158
|
}
|
|
144
|
-
|
|
145
|
-
|
|
159
|
+
]
|
|
160
|
+
}
|
|
146
161
|
}
|
|
147
162
|
}
|
|
148
163
|
}
|
|
@@ -160,8 +175,9 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
160
175
|
},
|
|
161
176
|
body: {
|
|
162
177
|
"@context": [
|
|
163
|
-
|
|
164
|
-
AuditableItemStreamContexts.
|
|
178
|
+
SchemaOrgContexts.Context,
|
|
179
|
+
AuditableItemStreamContexts.Context,
|
|
180
|
+
AuditableItemStreamContexts.ContextCommon
|
|
165
181
|
],
|
|
166
182
|
type: AuditableItemStreamTypes.Stream,
|
|
167
183
|
id: "ais:1234567890",
|
|
@@ -175,25 +191,29 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
175
191
|
organizationIdentity: "did:iota:1234567890",
|
|
176
192
|
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
177
193
|
immutableInterval: 10,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
+
numberOfItems: 1,
|
|
195
|
+
entries: {
|
|
196
|
+
type: SchemaOrgTypes.ItemList,
|
|
197
|
+
[SchemaOrgTypes.ItemListElement]: [
|
|
198
|
+
{
|
|
199
|
+
"@context": [
|
|
200
|
+
AuditableItemStreamContexts.Context,
|
|
201
|
+
AuditableItemStreamContexts.ContextCommon
|
|
202
|
+
],
|
|
203
|
+
type: AuditableItemStreamTypes.StreamEntry,
|
|
204
|
+
id: "tst:1234567890",
|
|
205
|
+
dateCreated: "2024-08-22T11:55:16.271Z",
|
|
206
|
+
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
207
|
+
index: 0,
|
|
208
|
+
entryObject: {
|
|
209
|
+
"@context": "https://schema.org",
|
|
210
|
+
"@type": "Event",
|
|
211
|
+
startDate: "2011-04-09T20:00:00Z",
|
|
212
|
+
description: "A description of the event"
|
|
213
|
+
}
|
|
194
214
|
}
|
|
195
|
-
|
|
196
|
-
|
|
215
|
+
]
|
|
216
|
+
}
|
|
197
217
|
}
|
|
198
218
|
}
|
|
199
219
|
}
|
|
@@ -221,6 +241,12 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
221
241
|
id: "ais:1234567890"
|
|
222
242
|
},
|
|
223
243
|
body: {
|
|
244
|
+
"@context": [
|
|
245
|
+
SchemaOrgContexts.Context,
|
|
246
|
+
AuditableItemStreamContexts.Context,
|
|
247
|
+
AuditableItemStreamContexts.ContextCommon
|
|
248
|
+
],
|
|
249
|
+
type: AuditableItemStreamTypes.Stream,
|
|
224
250
|
annotationObject: {
|
|
225
251
|
"@context": "https://schema.org",
|
|
226
252
|
"@type": "Note",
|
|
@@ -269,6 +295,35 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
269
295
|
}
|
|
270
296
|
]
|
|
271
297
|
};
|
|
298
|
+
const closeRoute = {
|
|
299
|
+
operationId: "auditableItemStreamClose",
|
|
300
|
+
summary: "Close a stream",
|
|
301
|
+
tag: tagsAuditableItemStream[0].name,
|
|
302
|
+
method: "PUT",
|
|
303
|
+
path: `${baseRouteName}/:id/close`,
|
|
304
|
+
handler: async (httpRequestContext, request) => auditableItemStreamClose(httpRequestContext, componentName, request),
|
|
305
|
+
requestType: {
|
|
306
|
+
type: "IAuditableItemStreamCloseRequest",
|
|
307
|
+
examples: [
|
|
308
|
+
{
|
|
309
|
+
id: "auditableItemStreamCloseRequestExample",
|
|
310
|
+
request: {
|
|
311
|
+
pathParams: {
|
|
312
|
+
id: "ais:1234567890"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
]
|
|
317
|
+
},
|
|
318
|
+
responseType: [
|
|
319
|
+
{
|
|
320
|
+
type: "INoContentResponse"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
type: "INotFoundResponse"
|
|
324
|
+
}
|
|
325
|
+
]
|
|
326
|
+
};
|
|
272
327
|
const listRoute = {
|
|
273
328
|
operationId: "auditableItemStreamList",
|
|
274
329
|
summary: "Query streams",
|
|
@@ -294,16 +349,17 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
294
349
|
response: {
|
|
295
350
|
body: {
|
|
296
351
|
"@context": [
|
|
297
|
-
SchemaOrgContexts.
|
|
298
|
-
AuditableItemStreamContexts.
|
|
299
|
-
AuditableItemStreamContexts.
|
|
352
|
+
SchemaOrgContexts.Context,
|
|
353
|
+
AuditableItemStreamContexts.Context,
|
|
354
|
+
AuditableItemStreamContexts.ContextCommon
|
|
300
355
|
],
|
|
301
356
|
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamList],
|
|
302
357
|
[SchemaOrgTypes.ItemListElement]: [
|
|
303
358
|
{
|
|
304
359
|
"@context": [
|
|
305
|
-
|
|
306
|
-
AuditableItemStreamContexts.
|
|
360
|
+
SchemaOrgContexts.Context,
|
|
361
|
+
AuditableItemStreamContexts.Context,
|
|
362
|
+
AuditableItemStreamContexts.ContextCommon
|
|
307
363
|
],
|
|
308
364
|
type: AuditableItemStreamTypes.Stream,
|
|
309
365
|
id: "ais:1234567890",
|
|
@@ -316,10 +372,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
316
372
|
},
|
|
317
373
|
organizationIdentity: "did:iota:1234567890",
|
|
318
374
|
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
319
|
-
immutableInterval: 10
|
|
375
|
+
immutableInterval: 10,
|
|
376
|
+
numberOfItems: 0
|
|
320
377
|
}
|
|
321
|
-
]
|
|
322
|
-
[SchemaOrgTypes.NextItem]: "1"
|
|
378
|
+
]
|
|
323
379
|
}
|
|
324
380
|
}
|
|
325
381
|
}
|
|
@@ -337,16 +393,17 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
337
393
|
},
|
|
338
394
|
body: {
|
|
339
395
|
"@context": [
|
|
340
|
-
SchemaOrgContexts.
|
|
341
|
-
AuditableItemStreamContexts.
|
|
342
|
-
AuditableItemStreamContexts.
|
|
396
|
+
SchemaOrgContexts.Context,
|
|
397
|
+
AuditableItemStreamContexts.Context,
|
|
398
|
+
AuditableItemStreamContexts.ContextCommon
|
|
343
399
|
],
|
|
344
400
|
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamList],
|
|
345
401
|
[SchemaOrgTypes.ItemListElement]: [
|
|
346
402
|
{
|
|
347
403
|
"@context": [
|
|
348
|
-
|
|
349
|
-
AuditableItemStreamContexts.
|
|
404
|
+
SchemaOrgContexts.Context,
|
|
405
|
+
AuditableItemStreamContexts.Context,
|
|
406
|
+
AuditableItemStreamContexts.ContextCommon
|
|
350
407
|
],
|
|
351
408
|
type: AuditableItemStreamTypes.Stream,
|
|
352
409
|
id: "ais:1234567890",
|
|
@@ -359,10 +416,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
359
416
|
},
|
|
360
417
|
organizationIdentity: "did:iota:1234567890",
|
|
361
418
|
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
362
|
-
immutableInterval: 10
|
|
419
|
+
immutableInterval: 10,
|
|
420
|
+
numberOfItems: 0
|
|
363
421
|
}
|
|
364
|
-
]
|
|
365
|
-
[SchemaOrgTypes.NextItem]: "1"
|
|
422
|
+
]
|
|
366
423
|
}
|
|
367
424
|
}
|
|
368
425
|
}
|
|
@@ -378,7 +435,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
378
435
|
summary: "Create a new stream entry",
|
|
379
436
|
tag: tagsAuditableItemStream[0].name,
|
|
380
437
|
method: "POST",
|
|
381
|
-
path: `${baseRouteName}/:id`,
|
|
438
|
+
path: `${baseRouteName}/:id/entries`,
|
|
382
439
|
handler: async (httpRequestContext, request) => auditableItemStreamCreateEntry(httpRequestContext, componentName, request),
|
|
383
440
|
requestType: {
|
|
384
441
|
type: "IAuditableItemStreamCreateEntryRequest",
|
|
@@ -411,7 +468,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
411
468
|
response: {
|
|
412
469
|
statusCode: HttpStatusCode.created,
|
|
413
470
|
headers: {
|
|
414
|
-
[HeaderTypes.Location]: "ais
|
|
471
|
+
[HeaderTypes.Location]: "ais%3A1234567890%3A01010101010"
|
|
415
472
|
}
|
|
416
473
|
}
|
|
417
474
|
}
|
|
@@ -424,7 +481,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
424
481
|
summary: "Delete an entry from the stream",
|
|
425
482
|
tag: tagsAuditableItemStream[0].name,
|
|
426
483
|
method: "DELETE",
|
|
427
|
-
path: `${baseRouteName}/:id/:entryId`,
|
|
484
|
+
path: `${baseRouteName}/:id/entries/:entryId`,
|
|
428
485
|
handler: async (httpRequestContext, request) => auditableItemStreamDeleteEntry(httpRequestContext, componentName, request),
|
|
429
486
|
requestType: {
|
|
430
487
|
type: "IAuditableItemStreamDeleteRequest",
|
|
@@ -454,7 +511,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
454
511
|
summary: "Update a stream entry",
|
|
455
512
|
tag: tagsAuditableItemStream[0].name,
|
|
456
513
|
method: "PUT",
|
|
457
|
-
path: `${baseRouteName}/:id/:entryId`,
|
|
514
|
+
path: `${baseRouteName}/:id/entries/:entryId`,
|
|
458
515
|
handler: async (httpRequestContext, request) => auditableItemStreamUpdateEntry(httpRequestContext, componentName, request),
|
|
459
516
|
requestType: {
|
|
460
517
|
type: "IAuditableItemStreamUpdateEntryRequest",
|
|
@@ -491,7 +548,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
491
548
|
summary: "Get a stream entry",
|
|
492
549
|
tag: tagsAuditableItemStream[0].name,
|
|
493
550
|
method: "GET",
|
|
494
|
-
path: `${baseRouteName}/:id/:entryId`,
|
|
551
|
+
path: `${baseRouteName}/:id/entries/:entryId`,
|
|
495
552
|
handler: async (httpRequestContext, request) => auditableItemStreamGetEntry(httpRequestContext, componentName, request),
|
|
496
553
|
requestType: {
|
|
497
554
|
type: "IAuditableItemStreamGetEntryRequest",
|
|
@@ -516,8 +573,8 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
516
573
|
response: {
|
|
517
574
|
body: {
|
|
518
575
|
"@context": [
|
|
519
|
-
AuditableItemStreamContexts.
|
|
520
|
-
AuditableItemStreamContexts.
|
|
576
|
+
AuditableItemStreamContexts.Context,
|
|
577
|
+
AuditableItemStreamContexts.ContextCommon
|
|
521
578
|
],
|
|
522
579
|
type: AuditableItemStreamTypes.StreamEntry,
|
|
523
580
|
id: "tst:1234567890",
|
|
@@ -547,8 +604,8 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
547
604
|
},
|
|
548
605
|
body: {
|
|
549
606
|
"@context": [
|
|
550
|
-
AuditableItemStreamContexts.
|
|
551
|
-
AuditableItemStreamContexts.
|
|
607
|
+
AuditableItemStreamContexts.Context,
|
|
608
|
+
AuditableItemStreamContexts.ContextCommon
|
|
552
609
|
],
|
|
553
610
|
type: AuditableItemStreamTypes.StreamEntry,
|
|
554
611
|
id: "tst:1234567890",
|
|
@@ -573,10 +630,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
573
630
|
};
|
|
574
631
|
const getEntryObjectRoute = {
|
|
575
632
|
operationId: "auditableItemStreamGetEntryObject",
|
|
576
|
-
summary: "Get a stream entry",
|
|
633
|
+
summary: "Get a stream entry object",
|
|
577
634
|
tag: tagsAuditableItemStream[0].name,
|
|
578
635
|
method: "GET",
|
|
579
|
-
path: `${baseRouteName}/:id/:entryId/object`,
|
|
636
|
+
path: `${baseRouteName}/:id/entries/:entryId/object`,
|
|
580
637
|
handler: async (httpRequestContext, request) => auditableItemStreamGetEntryObject(httpRequestContext, componentName, request),
|
|
581
638
|
requestType: {
|
|
582
639
|
type: "IAuditableItemStreamGetEntryRequest",
|
|
@@ -643,16 +700,16 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
643
700
|
response: {
|
|
644
701
|
body: {
|
|
645
702
|
"@context": [
|
|
646
|
-
SchemaOrgContexts.
|
|
647
|
-
AuditableItemStreamContexts.
|
|
648
|
-
AuditableItemStreamContexts.
|
|
703
|
+
SchemaOrgContexts.Context,
|
|
704
|
+
AuditableItemStreamContexts.Context,
|
|
705
|
+
AuditableItemStreamContexts.ContextCommon
|
|
649
706
|
],
|
|
650
707
|
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
|
|
651
708
|
[SchemaOrgTypes.ItemListElement]: [
|
|
652
709
|
{
|
|
653
710
|
"@context": [
|
|
654
|
-
AuditableItemStreamContexts.
|
|
655
|
-
AuditableItemStreamContexts.
|
|
711
|
+
AuditableItemStreamContexts.Context,
|
|
712
|
+
AuditableItemStreamContexts.ContextCommon
|
|
656
713
|
],
|
|
657
714
|
type: AuditableItemStreamTypes.StreamEntry,
|
|
658
715
|
id: "tst:1234567890",
|
|
@@ -666,8 +723,7 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
666
723
|
description: "A description of the event"
|
|
667
724
|
}
|
|
668
725
|
}
|
|
669
|
-
]
|
|
670
|
-
[SchemaOrgTypes.NextItem]: "1"
|
|
726
|
+
]
|
|
671
727
|
}
|
|
672
728
|
}
|
|
673
729
|
}
|
|
@@ -685,16 +741,16 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
685
741
|
},
|
|
686
742
|
body: {
|
|
687
743
|
"@context": [
|
|
688
|
-
SchemaOrgContexts.
|
|
689
|
-
AuditableItemStreamContexts.
|
|
690
|
-
AuditableItemStreamContexts.
|
|
744
|
+
SchemaOrgContexts.Context,
|
|
745
|
+
AuditableItemStreamContexts.Context,
|
|
746
|
+
AuditableItemStreamContexts.ContextCommon
|
|
691
747
|
],
|
|
692
748
|
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
|
|
693
749
|
[SchemaOrgTypes.ItemListElement]: [
|
|
694
750
|
{
|
|
695
751
|
"@context": [
|
|
696
|
-
AuditableItemStreamContexts.
|
|
697
|
-
AuditableItemStreamContexts.
|
|
752
|
+
AuditableItemStreamContexts.Context,
|
|
753
|
+
AuditableItemStreamContexts.ContextCommon
|
|
698
754
|
],
|
|
699
755
|
type: AuditableItemStreamTypes.StreamEntry,
|
|
700
756
|
id: "tst:1234567890",
|
|
@@ -708,8 +764,107 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
708
764
|
description: "A description of the event"
|
|
709
765
|
}
|
|
710
766
|
}
|
|
767
|
+
]
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
]
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
type: "INotFoundResponse"
|
|
775
|
+
}
|
|
776
|
+
]
|
|
777
|
+
};
|
|
778
|
+
const listEntriesNoStreamRoute = {
|
|
779
|
+
operationId: "auditableItemStreamListEntriesNoStream",
|
|
780
|
+
summary: "Get the entry objects for all streams",
|
|
781
|
+
tag: tagsAuditableItemStream[0].name,
|
|
782
|
+
method: "GET",
|
|
783
|
+
path: `${baseRouteName}/entries`,
|
|
784
|
+
handler: async (httpRequestContext, request) => auditableItemStreamListEntriesNoStream(httpRequestContext, componentName, request),
|
|
785
|
+
requestType: {
|
|
786
|
+
type: "IAuditableItemStreamListEntriesNoStreamRequest",
|
|
787
|
+
examples: [
|
|
788
|
+
{
|
|
789
|
+
id: "auditableItemStreamListEntriesNoStreamRequestExample",
|
|
790
|
+
request: {}
|
|
791
|
+
}
|
|
792
|
+
]
|
|
793
|
+
},
|
|
794
|
+
responseType: [
|
|
795
|
+
{
|
|
796
|
+
type: "IAuditableItemStreamListEntriesResponse",
|
|
797
|
+
examples: [
|
|
798
|
+
{
|
|
799
|
+
id: "auditableItemStreamListEntriesNoStreamResponseExample",
|
|
800
|
+
response: {
|
|
801
|
+
body: {
|
|
802
|
+
"@context": [
|
|
803
|
+
SchemaOrgContexts.Context,
|
|
804
|
+
AuditableItemStreamContexts.Context,
|
|
805
|
+
AuditableItemStreamContexts.ContextCommon
|
|
711
806
|
],
|
|
712
|
-
[SchemaOrgTypes.
|
|
807
|
+
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
|
|
808
|
+
[SchemaOrgTypes.ItemListElement]: [
|
|
809
|
+
{
|
|
810
|
+
"@context": [
|
|
811
|
+
AuditableItemStreamContexts.Context,
|
|
812
|
+
AuditableItemStreamContexts.ContextCommon
|
|
813
|
+
],
|
|
814
|
+
type: AuditableItemStreamTypes.StreamEntry,
|
|
815
|
+
id: "tst:1234567890",
|
|
816
|
+
dateCreated: "2024-08-22T11:55:16.271Z",
|
|
817
|
+
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
818
|
+
index: 0,
|
|
819
|
+
entryObject: {
|
|
820
|
+
"@context": "https://schema.org",
|
|
821
|
+
"@type": "Event",
|
|
822
|
+
startDate: "2011-04-09T20:00:00Z",
|
|
823
|
+
description: "A description of the event"
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
]
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
]
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
type: "IAuditableItemStreamListEntriesResponse",
|
|
834
|
+
mimeType: MimeTypes.JsonLd,
|
|
835
|
+
examples: [
|
|
836
|
+
{
|
|
837
|
+
id: "auditableItemStreamJsonLdListEntriesNoStreamResponseExample",
|
|
838
|
+
response: {
|
|
839
|
+
headers: {
|
|
840
|
+
[HeaderTypes.ContentType]: MimeTypes.JsonLd
|
|
841
|
+
},
|
|
842
|
+
body: {
|
|
843
|
+
"@context": [
|
|
844
|
+
SchemaOrgContexts.Context,
|
|
845
|
+
AuditableItemStreamContexts.Context,
|
|
846
|
+
AuditableItemStreamContexts.ContextCommon
|
|
847
|
+
],
|
|
848
|
+
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryList],
|
|
849
|
+
[SchemaOrgTypes.ItemListElement]: [
|
|
850
|
+
{
|
|
851
|
+
"@context": [
|
|
852
|
+
AuditableItemStreamContexts.Context,
|
|
853
|
+
AuditableItemStreamContexts.ContextCommon
|
|
854
|
+
],
|
|
855
|
+
type: AuditableItemStreamTypes.StreamEntry,
|
|
856
|
+
id: "tst:1234567890",
|
|
857
|
+
dateCreated: "2024-08-22T11:55:16.271Z",
|
|
858
|
+
proofId: "0101010101010101010101010101010101010101010101010101010101010101",
|
|
859
|
+
index: 0,
|
|
860
|
+
entryObject: {
|
|
861
|
+
"@context": "https://schema.org",
|
|
862
|
+
"@type": "Event",
|
|
863
|
+
startDate: "2011-04-09T20:00:00Z",
|
|
864
|
+
description: "A description of the event"
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
]
|
|
713
868
|
}
|
|
714
869
|
}
|
|
715
870
|
}
|
|
@@ -749,9 +904,9 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
749
904
|
response: {
|
|
750
905
|
body: {
|
|
751
906
|
"@context": [
|
|
752
|
-
SchemaOrgContexts.
|
|
753
|
-
AuditableItemStreamContexts.
|
|
754
|
-
AuditableItemStreamContexts.
|
|
907
|
+
SchemaOrgContexts.Context,
|
|
908
|
+
AuditableItemStreamContexts.Context,
|
|
909
|
+
AuditableItemStreamContexts.ContextCommon
|
|
755
910
|
],
|
|
756
911
|
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryObjectList],
|
|
757
912
|
[SchemaOrgTypes.ItemListElement]: [
|
|
@@ -761,8 +916,55 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
761
916
|
startDate: "2011-04-09T20:00:00Z",
|
|
762
917
|
description: "A description of the event"
|
|
763
918
|
}
|
|
919
|
+
]
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
]
|
|
924
|
+
},
|
|
925
|
+
{
|
|
926
|
+
type: "INotFoundResponse"
|
|
927
|
+
}
|
|
928
|
+
]
|
|
929
|
+
};
|
|
930
|
+
const listEntryObjectsNoStreamRoute = {
|
|
931
|
+
operationId: "auditableItemStreamListEntryObjectsNoStream",
|
|
932
|
+
summary: "Get the entry objects for all streams",
|
|
933
|
+
tag: tagsAuditableItemStream[0].name,
|
|
934
|
+
method: "GET",
|
|
935
|
+
path: `${baseRouteName}/entries/objects`,
|
|
936
|
+
handler: async (httpRequestContext, request) => auditableItemStreamListEntryObjectsNoStream(httpRequestContext, componentName, request),
|
|
937
|
+
requestType: {
|
|
938
|
+
type: "IAuditableItemStreamListEntryObjectsNoStreamRequest",
|
|
939
|
+
examples: [
|
|
940
|
+
{
|
|
941
|
+
id: "auditableItemStreamListEntryObjectsNoStreamRequestExample",
|
|
942
|
+
request: {}
|
|
943
|
+
}
|
|
944
|
+
]
|
|
945
|
+
},
|
|
946
|
+
responseType: [
|
|
947
|
+
{
|
|
948
|
+
type: "IAuditableItemStreamListEntryObjectsResponse",
|
|
949
|
+
examples: [
|
|
950
|
+
{
|
|
951
|
+
id: "auditableItemStreamListEntryObjectsNoStreamResponseExample",
|
|
952
|
+
response: {
|
|
953
|
+
body: {
|
|
954
|
+
"@context": [
|
|
955
|
+
SchemaOrgContexts.Context,
|
|
956
|
+
AuditableItemStreamContexts.Context,
|
|
957
|
+
AuditableItemStreamContexts.ContextCommon
|
|
764
958
|
],
|
|
765
|
-
[SchemaOrgTypes.
|
|
959
|
+
type: [SchemaOrgTypes.ItemList, AuditableItemStreamTypes.StreamEntryObjectList],
|
|
960
|
+
[SchemaOrgTypes.ItemListElement]: [
|
|
961
|
+
{
|
|
962
|
+
"@context": "https://schema.org",
|
|
963
|
+
"@type": "Event",
|
|
964
|
+
startDate: "2011-04-09T20:00:00Z",
|
|
965
|
+
description: "A description of the event"
|
|
966
|
+
}
|
|
967
|
+
]
|
|
766
968
|
}
|
|
767
969
|
}
|
|
768
970
|
}
|
|
@@ -773,11 +975,41 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
773
975
|
}
|
|
774
976
|
]
|
|
775
977
|
};
|
|
978
|
+
const removeProofRoute = {
|
|
979
|
+
operationId: "auditableItemStreamRemoveProof",
|
|
980
|
+
summary: "Remove the proof from a stream",
|
|
981
|
+
tag: tagsAuditableItemStream[0].name,
|
|
982
|
+
method: "DELETE",
|
|
983
|
+
path: `${baseRouteName}/:id/proof`,
|
|
984
|
+
handler: async (httpRequestContext, request) => auditableItemStreamRemoveProof(httpRequestContext, componentName, request),
|
|
985
|
+
requestType: {
|
|
986
|
+
type: "IAuditableItemStreamRemoveProofRequest",
|
|
987
|
+
examples: [
|
|
988
|
+
{
|
|
989
|
+
id: "auditableItemStreamRemoveProofRequestExample",
|
|
990
|
+
request: {
|
|
991
|
+
pathParams: {
|
|
992
|
+
id: "ais:1234567890"
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
]
|
|
997
|
+
},
|
|
998
|
+
responseType: [
|
|
999
|
+
{
|
|
1000
|
+
type: "INoContentResponse"
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
type: "INotFoundResponse"
|
|
1004
|
+
}
|
|
1005
|
+
]
|
|
1006
|
+
};
|
|
776
1007
|
return [
|
|
777
1008
|
createRoute,
|
|
778
1009
|
getRoute,
|
|
779
1010
|
updateRoute,
|
|
780
1011
|
deleteRoute,
|
|
1012
|
+
closeRoute,
|
|
781
1013
|
listRoute,
|
|
782
1014
|
createEntryRoute,
|
|
783
1015
|
getEntryRoute,
|
|
@@ -785,7 +1017,10 @@ export function generateRestRoutesAuditableItemStream(baseRouteName, componentNa
|
|
|
785
1017
|
deleteEntryRoute,
|
|
786
1018
|
updateEntryRoute,
|
|
787
1019
|
listEntriesRoute,
|
|
788
|
-
|
|
1020
|
+
listEntriesNoStreamRoute,
|
|
1021
|
+
listEntryObjectsRoute,
|
|
1022
|
+
listEntryObjectsNoStreamRoute,
|
|
1023
|
+
removeProofRoute
|
|
789
1024
|
];
|
|
790
1025
|
}
|
|
791
1026
|
/**
|
|
@@ -799,12 +1034,7 @@ export async function auditableItemStreamCreate(httpRequestContext, componentNam
|
|
|
799
1034
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
800
1035
|
Guards.object(ROUTES_SOURCE, "request.body", request.body);
|
|
801
1036
|
const component = ComponentFactory.get(componentName);
|
|
802
|
-
const id = await component.create(
|
|
803
|
-
annotationObject: request.body.annotationObject,
|
|
804
|
-
entries: request.body.entries
|
|
805
|
-
}, {
|
|
806
|
-
immutableInterval: request.body?.immutableInterval
|
|
807
|
-
});
|
|
1037
|
+
const id = await component.create(request.body);
|
|
808
1038
|
return {
|
|
809
1039
|
statusCode: HttpStatusCode.created,
|
|
810
1040
|
headers: {
|
|
@@ -823,19 +1053,23 @@ export async function auditableItemStreamGet(httpRequestContext, componentName,
|
|
|
823
1053
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
824
1054
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
825
1055
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
826
|
-
const
|
|
1056
|
+
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
827
1057
|
const component = ComponentFactory.get(componentName);
|
|
828
|
-
const result = await component.get(request.pathParams.id, {
|
|
1058
|
+
const result = await component.get(request.pathParams.id, request.query?.cursor, Coerce.integer(request.query?.limit), {
|
|
829
1059
|
includeEntries: Coerce.boolean(request.query?.includeEntries),
|
|
830
1060
|
includeDeleted: Coerce.boolean(request.query?.includeDeleted),
|
|
831
1061
|
verifyStream: Coerce.boolean(request.query?.verifyStream),
|
|
832
1062
|
verifyEntries: Coerce.boolean(request.query?.verifyEntries)
|
|
833
1063
|
});
|
|
1064
|
+
const headers = {
|
|
1065
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1066
|
+
};
|
|
1067
|
+
if (Is.stringValue(result.cursor)) {
|
|
1068
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
|
|
1069
|
+
}
|
|
834
1070
|
return {
|
|
835
|
-
headers
|
|
836
|
-
|
|
837
|
-
},
|
|
838
|
-
body: result
|
|
1071
|
+
headers,
|
|
1072
|
+
body: result.stream
|
|
839
1073
|
};
|
|
840
1074
|
}
|
|
841
1075
|
/**
|
|
@@ -852,8 +1086,8 @@ export async function auditableItemStreamUpdate(httpRequestContext, componentNam
|
|
|
852
1086
|
Guards.object(ROUTES_SOURCE, "request.body", request.body);
|
|
853
1087
|
const component = ComponentFactory.get(componentName);
|
|
854
1088
|
await component.update({
|
|
855
|
-
|
|
856
|
-
|
|
1089
|
+
...request.body,
|
|
1090
|
+
id: request.pathParams.id
|
|
857
1091
|
});
|
|
858
1092
|
return {
|
|
859
1093
|
statusCode: HttpStatusCode.noContent
|
|
@@ -876,6 +1110,23 @@ export async function auditableItemStreamDelete(httpRequestContext, componentNam
|
|
|
876
1110
|
statusCode: HttpStatusCode.noContent
|
|
877
1111
|
};
|
|
878
1112
|
}
|
|
1113
|
+
/**
|
|
1114
|
+
* Close the stream.
|
|
1115
|
+
* @param httpRequestContext The request context for the API.
|
|
1116
|
+
* @param componentName The name of the component to use in the routes.
|
|
1117
|
+
* @param request The request.
|
|
1118
|
+
* @returns The response object with additional http response properties.
|
|
1119
|
+
*/
|
|
1120
|
+
export async function auditableItemStreamClose(httpRequestContext, componentName, request) {
|
|
1121
|
+
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1122
|
+
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1123
|
+
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1124
|
+
const component = ComponentFactory.get(componentName);
|
|
1125
|
+
await component.close(request.pathParams.id);
|
|
1126
|
+
return {
|
|
1127
|
+
statusCode: HttpStatusCode.noContent
|
|
1128
|
+
};
|
|
1129
|
+
}
|
|
879
1130
|
/**
|
|
880
1131
|
* Query the stream.
|
|
881
1132
|
* @param httpRequestContext The request context for the API.
|
|
@@ -886,14 +1137,18 @@ export async function auditableItemStreamDelete(httpRequestContext, componentNam
|
|
|
886
1137
|
export async function auditableItemStreamList(httpRequestContext, componentName, request) {
|
|
887
1138
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
888
1139
|
Guards.object(ROUTES_SOURCE, "request.query", request.query);
|
|
1140
|
+
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
889
1141
|
const component = ComponentFactory.get(componentName);
|
|
890
|
-
const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
|
|
891
1142
|
const result = await component.query(HttpParameterHelper.objectFromString(request.query?.conditions), request.query?.orderBy, request.query?.orderByDirection, HttpParameterHelper.arrayFromString(request.query?.properties), request.query?.cursor, Coerce.integer(request.query?.limit));
|
|
1143
|
+
const headers = {
|
|
1144
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1145
|
+
};
|
|
1146
|
+
if (Is.stringValue(result.cursor)) {
|
|
1147
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
|
|
1148
|
+
}
|
|
892
1149
|
return {
|
|
893
|
-
headers
|
|
894
|
-
|
|
895
|
-
},
|
|
896
|
-
body: result
|
|
1150
|
+
headers,
|
|
1151
|
+
body: result.entries
|
|
897
1152
|
};
|
|
898
1153
|
}
|
|
899
1154
|
/**
|
|
@@ -968,14 +1223,15 @@ export async function auditableItemStreamGetEntry(httpRequestContext, componentN
|
|
|
968
1223
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
969
1224
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
970
1225
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.entryId", request.pathParams.entryId);
|
|
971
|
-
const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
|
|
972
1226
|
const component = ComponentFactory.get(componentName);
|
|
973
1227
|
const result = await component.getEntry(request.pathParams.id, request.pathParams.entryId, {
|
|
974
1228
|
verifyEntry: Coerce.boolean(request.query?.verifyEntry)
|
|
975
1229
|
});
|
|
976
1230
|
return {
|
|
977
1231
|
headers: {
|
|
978
|
-
[HeaderTypes.ContentType]:
|
|
1232
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
|
|
1233
|
+
? MimeTypes.JsonLd
|
|
1234
|
+
: MimeTypes.Json
|
|
979
1235
|
},
|
|
980
1236
|
body: result
|
|
981
1237
|
};
|
|
@@ -992,12 +1248,13 @@ export async function auditableItemStreamGetEntryObject(httpRequestContext, comp
|
|
|
992
1248
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
993
1249
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
994
1250
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.entryId", request.pathParams.entryId);
|
|
995
|
-
const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
|
|
996
1251
|
const component = ComponentFactory.get(componentName);
|
|
997
1252
|
const result = await component.getEntryObject(request.pathParams.id, request.pathParams.entryId);
|
|
998
1253
|
return {
|
|
999
1254
|
headers: {
|
|
1000
|
-
[HeaderTypes.ContentType]:
|
|
1255
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd
|
|
1256
|
+
? MimeTypes.JsonLd
|
|
1257
|
+
: MimeTypes.Json
|
|
1001
1258
|
},
|
|
1002
1259
|
body: result
|
|
1003
1260
|
};
|
|
@@ -1013,8 +1270,8 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
|
|
|
1013
1270
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1014
1271
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1015
1272
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1273
|
+
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1016
1274
|
const component = ComponentFactory.get(componentName);
|
|
1017
|
-
const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
|
|
1018
1275
|
const result = await component.getEntries(request.pathParams.id, {
|
|
1019
1276
|
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
1020
1277
|
includeDeleted: Coerce.boolean(request.query?.includeDeleted),
|
|
@@ -1023,11 +1280,45 @@ export async function auditableItemStreamListEntries(httpRequestContext, compone
|
|
|
1023
1280
|
limit: Coerce.integer(request.query?.limit),
|
|
1024
1281
|
cursor: request.query?.cursor
|
|
1025
1282
|
});
|
|
1283
|
+
const headers = {
|
|
1284
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1285
|
+
};
|
|
1286
|
+
if (Is.stringValue(result.cursor)) {
|
|
1287
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
|
|
1288
|
+
}
|
|
1026
1289
|
return {
|
|
1027
|
-
headers
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1290
|
+
headers,
|
|
1291
|
+
body: result.entries
|
|
1292
|
+
};
|
|
1293
|
+
}
|
|
1294
|
+
/**
|
|
1295
|
+
* Query the stream.
|
|
1296
|
+
* @param httpRequestContext The request context for the API.
|
|
1297
|
+
* @param componentName The name of the component to use in the routes.
|
|
1298
|
+
* @param request The request.
|
|
1299
|
+
* @returns The response object with additional http response properties.
|
|
1300
|
+
*/
|
|
1301
|
+
export async function auditableItemStreamListEntriesNoStream(httpRequestContext, componentName, request) {
|
|
1302
|
+
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1303
|
+
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1304
|
+
const component = ComponentFactory.get(componentName);
|
|
1305
|
+
const result = await component.getEntries(undefined, {
|
|
1306
|
+
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
1307
|
+
includeDeleted: Coerce.boolean(request.query?.includeDeleted),
|
|
1308
|
+
verifyEntries: Coerce.boolean(request.query?.verifyEntries),
|
|
1309
|
+
order: request.query?.order,
|
|
1310
|
+
limit: Coerce.integer(request.query?.limit),
|
|
1311
|
+
cursor: request.query?.cursor
|
|
1312
|
+
});
|
|
1313
|
+
const headers = {
|
|
1314
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1315
|
+
};
|
|
1316
|
+
if (Is.stringValue(result.cursor)) {
|
|
1317
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
|
|
1318
|
+
}
|
|
1319
|
+
return {
|
|
1320
|
+
headers,
|
|
1321
|
+
body: result.entries
|
|
1031
1322
|
};
|
|
1032
1323
|
}
|
|
1033
1324
|
/**
|
|
@@ -1041,8 +1332,8 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
|
|
|
1041
1332
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1042
1333
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1043
1334
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1335
|
+
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1044
1336
|
const component = ComponentFactory.get(componentName);
|
|
1045
|
-
const mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? "jsonld" : "json";
|
|
1046
1337
|
const result = await component.getEntryObjects(request.pathParams.id, {
|
|
1047
1338
|
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
1048
1339
|
includeDeleted: Coerce.boolean(request.query?.includeDeleted),
|
|
@@ -1050,11 +1341,61 @@ export async function auditableItemStreamListEntryObjects(httpRequestContext, co
|
|
|
1050
1341
|
limit: Coerce.integer(request.query?.limit),
|
|
1051
1342
|
cursor: request.query?.cursor
|
|
1052
1343
|
});
|
|
1344
|
+
const headers = {
|
|
1345
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1346
|
+
};
|
|
1347
|
+
if (Is.stringValue(result.cursor)) {
|
|
1348
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
|
|
1349
|
+
}
|
|
1053
1350
|
return {
|
|
1054
|
-
headers
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1351
|
+
headers,
|
|
1352
|
+
body: result.entries
|
|
1353
|
+
};
|
|
1354
|
+
}
|
|
1355
|
+
/**
|
|
1356
|
+
* Query the stream objects.
|
|
1357
|
+
* @param httpRequestContext The request context for the API.
|
|
1358
|
+
* @param componentName The name of the component to use in the routes.
|
|
1359
|
+
* @param request The request.
|
|
1360
|
+
* @returns The response object with additional http response properties.
|
|
1361
|
+
*/
|
|
1362
|
+
export async function auditableItemStreamListEntryObjectsNoStream(httpRequestContext, componentName, request) {
|
|
1363
|
+
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1364
|
+
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
1365
|
+
const component = ComponentFactory.get(componentName);
|
|
1366
|
+
const result = await component.getEntryObjects(undefined, {
|
|
1367
|
+
conditions: HttpParameterHelper.objectFromString(request.query?.conditions),
|
|
1368
|
+
includeDeleted: Coerce.boolean(request.query?.includeDeleted),
|
|
1369
|
+
order: request.query?.order,
|
|
1370
|
+
limit: Coerce.integer(request.query?.limit),
|
|
1371
|
+
cursor: request.query?.cursor
|
|
1372
|
+
});
|
|
1373
|
+
const headers = {
|
|
1374
|
+
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
1375
|
+
};
|
|
1376
|
+
if (Is.stringValue(result.cursor)) {
|
|
1377
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(await hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url), { cursor: result.cursor }, "next");
|
|
1378
|
+
}
|
|
1379
|
+
return {
|
|
1380
|
+
headers,
|
|
1381
|
+
body: result.entries
|
|
1382
|
+
};
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* Remove the proof from a stream.
|
|
1386
|
+
* @param httpRequestContext The request context for the API.
|
|
1387
|
+
* @param componentName The name of the component to use in the routes.
|
|
1388
|
+
* @param request The request.
|
|
1389
|
+
* @returns The response object with additional http response properties.
|
|
1390
|
+
*/
|
|
1391
|
+
export async function auditableItemStreamRemoveProof(httpRequestContext, componentName, request) {
|
|
1392
|
+
Guards.object(ROUTES_SOURCE, "request", request);
|
|
1393
|
+
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
1394
|
+
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.id", request.pathParams.id);
|
|
1395
|
+
const component = ComponentFactory.get(componentName);
|
|
1396
|
+
await component.removeProof(request.pathParams.id);
|
|
1397
|
+
return {
|
|
1398
|
+
statusCode: HttpStatusCode.noContent
|
|
1058
1399
|
};
|
|
1059
1400
|
}
|
|
1060
1401
|
//# sourceMappingURL=auditableItemStreamRoutes.js.map
|