@twin.org/document-management-service 0.0.3-next.3 → 0.0.3-next.5
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/es/documentManagementRoutes.js +29 -29
- package/dist/es/documentManagementRoutes.js.map +1 -1
- package/dist/es/documentManagementService.js +21 -21
- package/dist/es/documentManagementService.js.map +1 -1
- package/dist/types/documentManagementService.d.ts +2 -2
- package/docs/changelog.md +28 -0
- package/docs/open-api/spec.json +207 -83339
- package/docs/reference/classes/DocumentManagementService.md +1 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { AuditableItemGraphContexts, AuditableItemGraphTypes } from "@twin.org/a
|
|
|
2
2
|
import { Coerce, ComponentFactory, Converter, Guards, Is } from "@twin.org/core";
|
|
3
3
|
import { DocumentContexts, DocumentTypes } from "@twin.org/document-management-models";
|
|
4
4
|
import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
|
|
5
|
-
import {
|
|
5
|
+
import { UneceDocumentCodeList } from "@twin.org/standards-unece";
|
|
6
6
|
import { HeaderTypes, HttpStatusCode, MimeTypes } from "@twin.org/web";
|
|
7
7
|
/**
|
|
8
8
|
* The source used when communicating about these routes.
|
|
@@ -40,7 +40,7 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
40
40
|
body: {
|
|
41
41
|
documentId: "2721000",
|
|
42
42
|
documentIdFormat: "bol",
|
|
43
|
-
documentCode:
|
|
43
|
+
documentCode: UneceDocumentCodeList.BillOfLading,
|
|
44
44
|
blob: "SGVsbG8gV29ybGQ=",
|
|
45
45
|
annotationObject: {
|
|
46
46
|
"@context": "https://schema.org",
|
|
@@ -141,23 +141,23 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
141
141
|
response: {
|
|
142
142
|
body: {
|
|
143
143
|
"@context": [
|
|
144
|
-
SchemaOrgContexts.
|
|
145
|
-
DocumentContexts.
|
|
146
|
-
DocumentContexts.
|
|
144
|
+
SchemaOrgContexts.Namespace,
|
|
145
|
+
DocumentContexts.Namespace,
|
|
146
|
+
DocumentContexts.NamespaceCommon
|
|
147
147
|
],
|
|
148
148
|
type: SchemaOrgTypes.ItemList,
|
|
149
149
|
[SchemaOrgTypes.ItemListElement]: [
|
|
150
150
|
{
|
|
151
151
|
"@context": [
|
|
152
|
-
DocumentContexts.
|
|
153
|
-
DocumentContexts.
|
|
154
|
-
SchemaOrgContexts.
|
|
152
|
+
DocumentContexts.Namespace,
|
|
153
|
+
DocumentContexts.NamespaceCommon,
|
|
154
|
+
SchemaOrgContexts.Namespace
|
|
155
155
|
],
|
|
156
156
|
type: DocumentTypes.Document,
|
|
157
157
|
id: "2721000:0",
|
|
158
158
|
documentId: "2721000",
|
|
159
159
|
documentIdFormat: "bol",
|
|
160
|
-
documentCode:
|
|
160
|
+
documentCode: UneceDocumentCodeList.BillOfLading,
|
|
161
161
|
documentRevision: 0,
|
|
162
162
|
blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
|
|
163
163
|
blobHash: "sha256:123456",
|
|
@@ -185,23 +185,23 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
185
185
|
response: {
|
|
186
186
|
body: {
|
|
187
187
|
"@context": [
|
|
188
|
-
SchemaOrgContexts.
|
|
189
|
-
DocumentContexts.
|
|
190
|
-
DocumentContexts.
|
|
188
|
+
SchemaOrgContexts.Namespace,
|
|
189
|
+
DocumentContexts.Namespace,
|
|
190
|
+
DocumentContexts.NamespaceCommon
|
|
191
191
|
],
|
|
192
192
|
type: SchemaOrgTypes.ItemList,
|
|
193
193
|
[SchemaOrgTypes.ItemListElement]: [
|
|
194
194
|
{
|
|
195
195
|
"@context": [
|
|
196
|
-
DocumentContexts.
|
|
197
|
-
DocumentContexts.
|
|
198
|
-
SchemaOrgContexts.
|
|
196
|
+
DocumentContexts.Namespace,
|
|
197
|
+
DocumentContexts.NamespaceCommon,
|
|
198
|
+
SchemaOrgContexts.Namespace
|
|
199
199
|
],
|
|
200
200
|
type: DocumentTypes.Document,
|
|
201
201
|
id: "2721000:0",
|
|
202
202
|
documentId: "2721000",
|
|
203
203
|
documentIdFormat: "bol",
|
|
204
|
-
documentCode:
|
|
204
|
+
documentCode: UneceDocumentCodeList.BillOfLading,
|
|
205
205
|
documentRevision: 0,
|
|
206
206
|
blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
|
|
207
207
|
blobHash: "sha256:123456",
|
|
@@ -255,15 +255,15 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
255
255
|
response: {
|
|
256
256
|
body: {
|
|
257
257
|
"@context": [
|
|
258
|
-
DocumentContexts.
|
|
259
|
-
DocumentContexts.
|
|
260
|
-
SchemaOrgContexts.
|
|
258
|
+
DocumentContexts.Namespace,
|
|
259
|
+
DocumentContexts.NamespaceCommon,
|
|
260
|
+
SchemaOrgContexts.Namespace
|
|
261
261
|
],
|
|
262
262
|
type: DocumentTypes.Document,
|
|
263
263
|
id: "2721000:0",
|
|
264
264
|
documentId: "2721000",
|
|
265
265
|
documentIdFormat: "bol",
|
|
266
|
-
documentCode:
|
|
266
|
+
documentCode: UneceDocumentCodeList.BillOfLading,
|
|
267
267
|
documentRevision: 1,
|
|
268
268
|
blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
|
|
269
269
|
blobHash: "sha256:123456",
|
|
@@ -289,15 +289,15 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
289
289
|
response: {
|
|
290
290
|
body: {
|
|
291
291
|
"@context": [
|
|
292
|
-
DocumentContexts.
|
|
293
|
-
DocumentContexts.
|
|
294
|
-
SchemaOrgContexts.
|
|
292
|
+
DocumentContexts.Namespace,
|
|
293
|
+
DocumentContexts.NamespaceCommon,
|
|
294
|
+
SchemaOrgContexts.Namespace
|
|
295
295
|
],
|
|
296
296
|
type: DocumentTypes.Document,
|
|
297
297
|
id: "2721000:0",
|
|
298
298
|
documentId: "2721000",
|
|
299
299
|
documentIdFormat: "bol",
|
|
300
|
-
documentCode:
|
|
300
|
+
documentCode: UneceDocumentCodeList.BillOfLading,
|
|
301
301
|
documentRevision: 1,
|
|
302
302
|
blobStorageId: "blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70",
|
|
303
303
|
blobHash: "sha256:123456",
|
|
@@ -377,20 +377,20 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
377
377
|
id: "DocumentManagementQueryResponseExample",
|
|
378
378
|
response: {
|
|
379
379
|
body: {
|
|
380
|
-
"@context": [SchemaOrgContexts.
|
|
380
|
+
"@context": [SchemaOrgContexts.Namespace, AuditableItemGraphContexts.Namespace],
|
|
381
381
|
type: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],
|
|
382
382
|
[SchemaOrgTypes.ItemListElement]: [
|
|
383
383
|
{
|
|
384
384
|
"@context": [
|
|
385
|
-
AuditableItemGraphContexts.
|
|
386
|
-
AuditableItemGraphContexts.
|
|
385
|
+
AuditableItemGraphContexts.Namespace,
|
|
386
|
+
AuditableItemGraphContexts.NamespaceCommon
|
|
387
387
|
],
|
|
388
388
|
id: "aig:c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7",
|
|
389
389
|
type: AuditableItemGraphTypes.Vertex,
|
|
390
390
|
dateCreated: "2024-08-22T04:13:20.000Z",
|
|
391
391
|
aliases: [
|
|
392
392
|
{
|
|
393
|
-
"@context": [AuditableItemGraphContexts.
|
|
393
|
+
"@context": [AuditableItemGraphContexts.Namespace],
|
|
394
394
|
id: "test-id-0",
|
|
395
395
|
type: AuditableItemGraphTypes.Alias,
|
|
396
396
|
dateCreated: "2024-08-22T04:13:20.000Z"
|
|
@@ -398,7 +398,7 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
398
398
|
],
|
|
399
399
|
resources: [
|
|
400
400
|
{
|
|
401
|
-
"@context": AuditableItemGraphContexts.
|
|
401
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
402
402
|
type: AuditableItemGraphTypes.Resource,
|
|
403
403
|
dateCreated: "2024-08-22T04:13:20.000Z",
|
|
404
404
|
resourceObject: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentManagementRoutes.js","sourceRoot":"","sources":["../../src/documentManagementRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tICreatedResponse,\n\tIHttpRequestContext,\n\tINoContentResponse,\n\tINotFoundResponse,\n\tIRestRoute,\n\tITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes\n} from \"@twin.org/auditable-item-graph-models\";\nimport { Coerce, ComponentFactory, Converter, Guards, Is } from \"@twin.org/core\";\nimport {\n\tDocumentContexts,\n\tDocumentTypes,\n\ttype IDocumentManagementGetRevisionRequest,\n\ttype IDocumentManagementGetRevisionResponse,\n\ttype IDocumentManagementComponent,\n\ttype IDocumentManagementCreateRequest,\n\ttype IDocumentManagementGetRequest,\n\ttype IDocumentManagementGetResponse,\n\ttype IDocumentManagementQueryRequest,\n\ttype IDocumentManagementQueryResponse,\n\ttype IDocumentManagementRemoveRequest,\n\ttype IDocumentManagementUpdateRequest\n} from \"@twin.org/document-management-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { SchemaOrgContexts, SchemaOrgTypes } from \"@twin.org/standards-schema-org\";\nimport { DocumentCodeList } from \"@twin.org/standards-unece\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"documentManagementStorageRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsDocumentManagement: ITag[] = [\n\t{\n\t\tname: \"Document Management\",\n\t\tdescription: \"Endpoints which are modelled to access a document management contract.\"\n\t}\n];\n\n/**\n * The REST routes for document management.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesDocumentManagement(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst documentManagementCreateRoute: IRestRoute<\n\t\tIDocumentManagementCreateRequest,\n\t\tICreatedResponse\n\t> = {\n\t\toperationId: \"DocumentManagementSet\",\n\t\tsummary:\n\t\t\t\"Store a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcreateAttestation: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<ICreatedResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.created,\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.Location]: \"aig:123456\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementUpdateRoute: IRestRoute<\n\t\tIDocumentManagementUpdateRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementUpdate\",\n\t\tsummary:\n\t\t\t\"Update a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"PUT\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementUpdate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementUpdateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementUpdateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementGetRoute: IRestRoute<\n\t\tIDocumentManagementGetRequest,\n\t\tIDocumentManagementGetResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGet\",\n\t\tsummary: \"Get the data for a document from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementGetRevisionRoute: IRestRoute<\n\t\tIDocumentManagementGetRevisionRequest,\n\t\tIDocumentManagementGetRevisionResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGetRevision\",\n\t\tsummary: \"Get the data for a document revision from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGetRevision(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRevisionRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\",\n\t\t\t\t\t\t\trevision: \"1\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetRevisionResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetRevisionResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetRevisionResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetRevisionResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextRootCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.ContextRoot\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: DocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementRemoveRevisionRoute: IRestRoute<\n\t\tIDocumentManagementRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementRemove\",\n\t\tsummary: \"Remove an document from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:1234\",\n\t\t\t\t\t\t\trevision: \"1\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementQueryRoute: IRestRoute<\n\t\tIDocumentManagementQueryRequest,\n\t\tIDocumentManagementQueryResponse\n\t> = {\n\t\toperationId: \"DocumentManagementQuery\",\n\t\tsummary: \"Query the items from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementQuery(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementQueryRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementQueryRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementQueryResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementQueryResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [SchemaOrgContexts.ContextRoot, AuditableItemGraphContexts.ContextRoot],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextRootCommon\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tid: \"aig:c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7\",\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [AuditableItemGraphContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0\",\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tresources: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": AuditableItemGraphContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.twindev.org/documents/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.twindev.org/common/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.org\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Document\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0:0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentId: \"test-id-0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentCode: \"unece:DocumentCodeList#705\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"bill-of-lading\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:E3Duqrp6bHojSx+CzDttAToAiP1eFkCDAPBbKLABVGM=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"blob:memory:1370eeaaba7a6c7a234b1f82cc3b6d013a0088fd5e16408300f05b28b0015463\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0404040404040404040404040404040404040404040404040404040404040404\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\treturn [\n\t\tdocumentManagementCreateRoute,\n\t\tdocumentManagementUpdateRoute,\n\t\tdocumentManagementGetRoute,\n\t\tdocumentManagementGetRevisionRoute,\n\t\tdocumentManagementRemoveRevisionRoute,\n\t\tdocumentManagementQueryRoute\n\t];\n}\n\n/**\n * Create a document as an auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementCreateRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IDocumentManagementCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\tGuards.stringBase64(ROUTES_SOURCE, nameof(request.body.blob), request.body.blob);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\tconst id = await component.create(\n\t\trequest.body.documentId,\n\t\trequest.body.documentIdFormat,\n\t\trequest.body.documentCode,\n\t\tConverter.base64ToBytes(request.body.blob),\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges,\n\t\t{\n\t\t\tcreateAttestation: request.body.createAttestation,\n\t\t\taddAlias: request.body.addAlias,\n\t\t\taliasAnnotationObject: request.body.aliasAnnotationObject\n\t\t}\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.created,\n\t\theaders: {\n\t\t\tlocation: id\n\t\t}\n\t};\n}\n\n/**\n * Get the document from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRequest\n): Promise<IDocumentManagementGetResponse> {\n\tGuards.object<IDocumentManagementGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.get(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\tincludeRemoved: Coerce.boolean(request.query?.includeRemoved),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t},\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the document revision from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementGetRevision(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRevisionRequest\n): Promise<IDocumentManagementGetRevisionResponse> {\n\tGuards.object<IDocumentManagementGetRevisionRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRevisionRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst revision = Coerce.integer(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(revision), revision);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.getRevision(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\trevision,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t}\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update the document from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementUpdateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.update(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\tIs.stringValue(request.body.blob) ? Converter.base64ToBytes(request.body.blob) : undefined,\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove the document from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\tconst revision = Coerce.number(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revision), revision);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.removeRevision(request.pathParams.auditableItemGraphDocumentId, revision);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Query the documents from an auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementQuery(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementQueryRequest\n): Promise<IDocumentManagementQueryResponse> {\n\tGuards.object<IDocumentManagementQueryRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementQueryRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.documentId), request.query.documentId);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.query(\n\t\trequest.query.documentId,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"documentManagementRoutes.js","sourceRoot":"","sources":["../../src/documentManagementRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tICreatedResponse,\n\tIHttpRequestContext,\n\tINoContentResponse,\n\tINotFoundResponse,\n\tIRestRoute,\n\tITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes\n} from \"@twin.org/auditable-item-graph-models\";\nimport { Coerce, ComponentFactory, Converter, Guards, Is } from \"@twin.org/core\";\nimport {\n\tDocumentContexts,\n\tDocumentTypes,\n\ttype IDocumentManagementGetRevisionRequest,\n\ttype IDocumentManagementGetRevisionResponse,\n\ttype IDocumentManagementComponent,\n\ttype IDocumentManagementCreateRequest,\n\ttype IDocumentManagementGetRequest,\n\ttype IDocumentManagementGetResponse,\n\ttype IDocumentManagementQueryRequest,\n\ttype IDocumentManagementQueryResponse,\n\ttype IDocumentManagementRemoveRequest,\n\ttype IDocumentManagementUpdateRequest\n} from \"@twin.org/document-management-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { SchemaOrgContexts, SchemaOrgTypes } from \"@twin.org/standards-schema-org\";\nimport { UneceDocumentCodeList } from \"@twin.org/standards-unece\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"documentManagementStorageRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsDocumentManagement: ITag[] = [\n\t{\n\t\tname: \"Document Management\",\n\t\tdescription: \"Endpoints which are modelled to access a document management contract.\"\n\t}\n];\n\n/**\n * The REST routes for document management.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesDocumentManagement(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst documentManagementCreateRoute: IRestRoute<\n\t\tIDocumentManagementCreateRequest,\n\t\tICreatedResponse\n\t> = {\n\t\toperationId: \"DocumentManagementSet\",\n\t\tsummary:\n\t\t\t\"Store a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcreateAttestation: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<ICreatedResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.created,\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.Location]: \"aig:123456\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementUpdateRoute: IRestRoute<\n\t\tIDocumentManagementUpdateRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementUpdate\",\n\t\tsummary:\n\t\t\t\"Update a document in an auditable item graph vertex and add its content to blob storage.\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"PUT\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementUpdate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementUpdateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementUpdateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tblob: \"SGVsbG8gV29ybGQ=\",\n\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementGetRoute: IRestRoute<\n\t\tIDocumentManagementGetRequest,\n\t\tIDocumentManagementGetResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGet\",\n\t\tsummary: \"Get the data for a document from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: SchemaOrgTypes.ItemList,\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementGetRevisionRoute: IRestRoute<\n\t\tIDocumentManagementGetRevisionRequest,\n\t\tIDocumentManagementGetRevisionResponse\n\t> = {\n\t\toperationId: \"DocumentManagementGetRevision\",\n\t\tsummary: \"Get the data for a document revision from document management\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementGetRevision(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementGetRevisionRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:123456\",\n\t\t\t\t\t\t\trevision: \"1\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetRevisionResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetRevisionResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementGetRevisionResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementGetRevisionResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\tDocumentContexts.Namespace,\n\t\t\t\t\t\t\t\t\tDocumentContexts.NamespaceCommon,\n\t\t\t\t\t\t\t\t\tSchemaOrgContexts.Namespace\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: DocumentTypes.Document,\n\t\t\t\t\t\t\t\tid: \"2721000:0\",\n\t\t\t\t\t\t\t\tdocumentId: \"2721000\",\n\t\t\t\t\t\t\t\tdocumentIdFormat: \"bol\",\n\t\t\t\t\t\t\t\tdocumentCode: UneceDocumentCodeList.BillOfLading,\n\t\t\t\t\t\t\t\tdocumentRevision: 1,\n\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\"blob-memory:c57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tblobHash: \"sha256:123456\",\n\t\t\t\t\t\t\t\tdateCreated: \"2024-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\tname: \"myfile.pdf\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\",\n\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x6363636363636363636363636363636363636363636363636363636363636363\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementRemoveRevisionRoute: IRestRoute<\n\t\tIDocumentManagementRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementRemove\",\n\t\tsummary: \"Remove an document from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId/:revision`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tauditableItemGraphDocumentId: \"aig:1234\",\n\t\t\t\t\t\t\trevision: \"1\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst documentManagementQueryRoute: IRestRoute<\n\t\tIDocumentManagementQueryRequest,\n\t\tIDocumentManagementQueryResponse\n\t> = {\n\t\toperationId: \"DocumentManagementQuery\",\n\t\tsummary: \"Query the items from an auditable item graph vertex\",\n\t\ttag: tagsDocumentManagement[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementQuery(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementQueryRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementQueryRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tdocumentId: \"2721000\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IDocumentManagementQueryResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"DocumentManagementQueryResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [SchemaOrgContexts.Namespace, AuditableItemGraphContexts.Namespace],\n\t\t\t\t\t\t\t\ttype: [SchemaOrgTypes.ItemList, AuditableItemGraphTypes.VertexList],\n\t\t\t\t\t\t\t\t[SchemaOrgTypes.ItemListElement]: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.NamespaceCommon\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tid: \"aig:c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7\",\n\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Vertex,\n\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\taliases: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [AuditableItemGraphContexts.Namespace],\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0\",\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Alias,\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tresources: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": AuditableItemGraphContexts.Namespace,\n\t\t\t\t\t\t\t\t\t\t\t\ttype: AuditableItemGraphTypes.Resource,\n\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\tresourceObject: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.twindev.org/documents/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.twindev.org/common/\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"https://schema.org\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"Document\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: \"test-id-0:0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentId: \"test-id-0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentCode: \"unece:DocumentCodeList#705\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdocumentRevision: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tannotationObject: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: \"DigitalDocument\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"bill-of-lading\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobHash: \"sha256:E3Duqrp6bHojSx+CzDttAToAiP1eFkCDAPBbKLABVGM=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tblobStorageId:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"blob:memory:1370eeaaba7a6c7a234b1f82cc3b6d013a0088fd5e16408300f05b28b0015463\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdateCreated: \"2024-08-22T04:13:20.000Z\",\n\t\t\t\t\t\t\t\t\t\t\t\t\torganizationIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0101010101010101010101010101010101010101010101010101010101010101\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserIdentity:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0404040404040404040404040404040404040404040404040404040404040404\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\treturn [\n\t\tdocumentManagementCreateRoute,\n\t\tdocumentManagementUpdateRoute,\n\t\tdocumentManagementGetRoute,\n\t\tdocumentManagementGetRevisionRoute,\n\t\tdocumentManagementRemoveRevisionRoute,\n\t\tdocumentManagementQueryRoute\n\t];\n}\n\n/**\n * Create a document as an auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementCreateRequest\n): Promise<ICreatedResponse> {\n\tGuards.object<IDocumentManagementCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\tGuards.stringBase64(ROUTES_SOURCE, nameof(request.body.blob), request.body.blob);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\tconst id = await component.create(\n\t\trequest.body.documentId,\n\t\trequest.body.documentIdFormat,\n\t\trequest.body.documentCode,\n\t\tConverter.base64ToBytes(request.body.blob),\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges,\n\t\t{\n\t\t\tcreateAttestation: request.body.createAttestation,\n\t\t\taddAlias: request.body.addAlias,\n\t\t\taliasAnnotationObject: request.body.aliasAnnotationObject\n\t\t}\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.created,\n\t\theaders: {\n\t\t\tlocation: id\n\t\t}\n\t};\n}\n\n/**\n * Get the document from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRequest\n): Promise<IDocumentManagementGetResponse> {\n\tGuards.object<IDocumentManagementGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.get(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\tincludeRemoved: Coerce.boolean(request.query?.includeRemoved),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t},\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the document revision from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementGetRevision(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementGetRevisionRequest\n): Promise<IDocumentManagementGetRevisionResponse> {\n\tGuards.object<IDocumentManagementGetRevisionRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementGetRevisionRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst revision = Coerce.integer(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(revision), revision);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.getRevision(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\trevision,\n\t\t{\n\t\t\tincludeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),\n\t\t\tincludeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),\n\t\t\tincludeAttestation: Coerce.boolean(request.query?.includeAttestation),\n\t\t\textractRuleGroupId: request.query?.extractRuleGroupId,\n\t\t\textractMimeType: request.query?.extractMimeType\n\t\t}\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update the document from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementUpdateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.update(\n\t\trequest.pathParams.auditableItemGraphDocumentId,\n\t\tIs.stringValue(request.body.blob) ? Converter.base64ToBytes(request.body.blob) : undefined,\n\t\trequest.body.annotationObject,\n\t\trequest.body.auditableItemGraphEdges\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove the document from the auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.auditableItemGraphDocumentId),\n\t\trequest.pathParams.auditableItemGraphDocumentId\n\t);\n\tconst revision = Coerce.number(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revision), revision);\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tawait component.removeRevision(request.pathParams.auditableItemGraphDocumentId, revision);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Query the documents from an auditable item graph vertex.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function documentManagementQuery(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementQueryRequest\n): Promise<IDocumentManagementQueryResponse> {\n\tGuards.object<IDocumentManagementQueryRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementQueryRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.documentId), request.query.documentId);\n\n\tconst mimeType = request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IDocumentManagementComponent>(componentName);\n\n\tconst result = await component.query(\n\t\trequest.query.documentId,\n\t\trequest.query?.cursor,\n\t\tCoerce.integer(request.query?.limit)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
|
|
@@ -7,7 +7,7 @@ import { Sha256 } from "@twin.org/crypto";
|
|
|
7
7
|
import { JsonLdProcessor } from "@twin.org/data-json-ld";
|
|
8
8
|
import { DocumentContexts, DocumentTypes } from "@twin.org/document-management-models";
|
|
9
9
|
import { SchemaOrgContexts, SchemaOrgDataTypes, SchemaOrgTypes } from "@twin.org/standards-schema-org";
|
|
10
|
-
import {
|
|
10
|
+
import { UneceDocumentCodeList } from "@twin.org/standards-unece";
|
|
11
11
|
/**
|
|
12
12
|
* Service for performing document management operations.
|
|
13
13
|
*/
|
|
@@ -72,7 +72,7 @@ export class DocumentManagementService {
|
|
|
72
72
|
*/
|
|
73
73
|
async create(documentId, documentIdFormat, documentCode, blob, annotationObject, auditableItemGraphEdges, options) {
|
|
74
74
|
Guards.stringValue(DocumentManagementService.CLASS_NAME, "documentId", documentId);
|
|
75
|
-
Guards.arrayOneOf(DocumentManagementService.CLASS_NAME, "documentCode", documentCode, Object.values(
|
|
75
|
+
Guards.arrayOneOf(DocumentManagementService.CLASS_NAME, "documentCode", documentCode, Object.values(UneceDocumentCodeList));
|
|
76
76
|
Guards.uint8Array(DocumentManagementService.CLASS_NAME, "blob", blob);
|
|
77
77
|
const contextIds = await ContextIdStore.getContextIds();
|
|
78
78
|
try {
|
|
@@ -87,7 +87,7 @@ export class DocumentManagementService {
|
|
|
87
87
|
if (options?.addAlias ?? true) {
|
|
88
88
|
documentVertex.aliases ??= [];
|
|
89
89
|
documentVertex.aliases.push({
|
|
90
|
-
"@context": AuditableItemGraphContexts.
|
|
90
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
91
91
|
type: AuditableItemGraphTypes.Alias,
|
|
92
92
|
id: documentId,
|
|
93
93
|
aliasFormat: documentIdFormat,
|
|
@@ -98,9 +98,9 @@ export class DocumentManagementService {
|
|
|
98
98
|
const blobStorageId = await this._blobStorageComponent.create(Converter.bytesToBase64(blob));
|
|
99
99
|
const currentRevision = {
|
|
100
100
|
"@context": [
|
|
101
|
-
DocumentContexts.
|
|
102
|
-
DocumentContexts.
|
|
103
|
-
SchemaOrgContexts.
|
|
101
|
+
DocumentContexts.Namespace,
|
|
102
|
+
DocumentContexts.NamespaceCommon,
|
|
103
|
+
SchemaOrgContexts.Namespace
|
|
104
104
|
],
|
|
105
105
|
type: DocumentTypes.Document,
|
|
106
106
|
id: this.createDocumentId(documentId, 0),
|
|
@@ -121,7 +121,7 @@ export class DocumentManagementService {
|
|
|
121
121
|
// Add the new revision in to the vertex
|
|
122
122
|
documentVertex.resources ??= [];
|
|
123
123
|
documentVertex.resources.push({
|
|
124
|
-
"@context": AuditableItemGraphContexts.
|
|
124
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
125
125
|
type: AuditableItemGraphTypes.Resource,
|
|
126
126
|
resourceObject: currentRevision
|
|
127
127
|
});
|
|
@@ -198,7 +198,7 @@ export class DocumentManagementService {
|
|
|
198
198
|
newRevision.attestationId = await this.createAttestation(newRevision);
|
|
199
199
|
}
|
|
200
200
|
documentVertex.resources.push({
|
|
201
|
-
"@context": AuditableItemGraphContexts.
|
|
201
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
202
202
|
type: AuditableItemGraphTypes.Resource,
|
|
203
203
|
resourceObject: newRevision
|
|
204
204
|
});
|
|
@@ -373,7 +373,7 @@ export class DocumentManagementService {
|
|
|
373
373
|
}
|
|
374
374
|
else {
|
|
375
375
|
const vertexEdge = {
|
|
376
|
-
"@context": AuditableItemGraphContexts.
|
|
376
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
377
377
|
type: AuditableItemGraphTypes.Edge,
|
|
378
378
|
targetId: aigEdge.targetId,
|
|
379
379
|
edgeRelationships: ["document"]
|
|
@@ -422,7 +422,7 @@ export class DocumentManagementService {
|
|
|
422
422
|
const hasEdge = connected.edges?.some(e => e.targetId === auditableItemGraphDocumentId);
|
|
423
423
|
if (!hasEdge) {
|
|
424
424
|
const vertexEdge = {
|
|
425
|
-
"@context": AuditableItemGraphContexts.
|
|
425
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
426
426
|
type: AuditableItemGraphTypes.Edge,
|
|
427
427
|
targetId: auditableItemGraphDocumentId,
|
|
428
428
|
edgeRelationships: ["document"]
|
|
@@ -437,7 +437,7 @@ export class DocumentManagementService {
|
|
|
437
437
|
if (Is.empty(alias)) {
|
|
438
438
|
// No existing alias, so create one
|
|
439
439
|
const vertexAlias = {
|
|
440
|
-
"@context": AuditableItemGraphContexts.
|
|
440
|
+
"@context": AuditableItemGraphContexts.Namespace,
|
|
441
441
|
type: AuditableItemGraphTypes.Alias,
|
|
442
442
|
id: documentId,
|
|
443
443
|
aliasFormat: documentIdFormat,
|
|
@@ -516,9 +516,9 @@ export class DocumentManagementService {
|
|
|
516
516
|
async getDocumentsFromVertex(documentVertex, options, cursor, limit) {
|
|
517
517
|
const docList = {
|
|
518
518
|
"@context": [
|
|
519
|
-
SchemaOrgContexts.
|
|
520
|
-
DocumentContexts.
|
|
521
|
-
DocumentContexts.
|
|
519
|
+
SchemaOrgContexts.Namespace,
|
|
520
|
+
DocumentContexts.Namespace,
|
|
521
|
+
DocumentContexts.NamespaceCommon
|
|
522
522
|
],
|
|
523
523
|
type: SchemaOrgTypes.ItemList,
|
|
524
524
|
[SchemaOrgTypes.ItemListElement]: []
|
|
@@ -548,8 +548,8 @@ export class DocumentManagementService {
|
|
|
548
548
|
});
|
|
549
549
|
if (blobRequired) {
|
|
550
550
|
document.blobStorageEntry = blobEntry;
|
|
551
|
-
if (!docList["@context"].includes(BlobStorageContexts.
|
|
552
|
-
docList["@context"].push(BlobStorageContexts.
|
|
551
|
+
if (!docList["@context"].includes(BlobStorageContexts.Namespace)) {
|
|
552
|
+
docList["@context"].push(BlobStorageContexts.Namespace);
|
|
553
553
|
}
|
|
554
554
|
}
|
|
555
555
|
if (Is.stringValue(options?.extractRuleGroupId) && Is.stringValue(blobEntry.blob)) {
|
|
@@ -568,8 +568,8 @@ export class DocumentManagementService {
|
|
|
568
568
|
if (includeAttestation && Is.stringValue(document.attestationId)) {
|
|
569
569
|
const attestationInformation = await this._attestationComponent.get(document.attestationId);
|
|
570
570
|
document.attestationInformation = attestationInformation;
|
|
571
|
-
if (!docList["@context"].includes(AttestationContexts.
|
|
572
|
-
docList["@context"].push(AttestationContexts.
|
|
571
|
+
if (!docList["@context"].includes(AttestationContexts.Namespace)) {
|
|
572
|
+
docList["@context"].push(AttestationContexts.Namespace);
|
|
573
573
|
}
|
|
574
574
|
}
|
|
575
575
|
}
|
|
@@ -593,9 +593,9 @@ export class DocumentManagementService {
|
|
|
593
593
|
async createAttestation(document) {
|
|
594
594
|
const documentAttestation = {
|
|
595
595
|
"@context": [
|
|
596
|
-
DocumentContexts.
|
|
597
|
-
DocumentContexts.
|
|
598
|
-
SchemaOrgContexts.
|
|
596
|
+
DocumentContexts.Namespace,
|
|
597
|
+
DocumentContexts.NamespaceCommon,
|
|
598
|
+
SchemaOrgContexts.Namespace
|
|
599
599
|
],
|
|
600
600
|
type: DocumentTypes.DocumentAttestation,
|
|
601
601
|
id: document.id,
|