@twin.org/document-management-service 0.0.3-next.15 → 0.0.3-next.17
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 +22 -17
- package/dist/es/documentManagementRoutes.js.map +1 -1
- package/dist/es/documentManagementService.js +266 -177
- package/dist/es/documentManagementService.js.map +1 -1
- package/dist/es/restEntryPoints.js +3 -0
- package/dist/es/restEntryPoints.js.map +1 -1
- package/dist/types/documentManagementRoutes.d.ts +3 -3
- package/dist/types/documentManagementService.d.ts +19 -21
- package/dist/types/restEntryPoints.d.ts +3 -0
- package/docs/changelog.md +34 -0
- package/docs/open-api/spec.json +55 -41
- package/docs/reference/classes/DocumentManagementService.md +31 -9
- package/docs/reference/functions/{documentManagementUpdate.md → documentManagementUpdatePartial.md} +3 -3
- package/docs/reference/index.md +1 -1
- package/docs/reference/variables/restEntryPoints.md +2 -0
- package/locales/en.json +2 -0
- package/package.json +4 -4
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
// Copyright 2024 IOTA Stiftung.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0.
|
|
3
|
+
import { HttpContextIdKeys, HttpUrlHelper } from "@twin.org/api-models";
|
|
1
4
|
import { AuditableItemGraphContexts, AuditableItemGraphTypes } from "@twin.org/auditable-item-graph-models";
|
|
5
|
+
import { ContextIdStore } from "@twin.org/context";
|
|
2
6
|
import { Coerce, ComponentFactory, Converter, Guards, Is } from "@twin.org/core";
|
|
3
7
|
import { DocumentContexts, DocumentTypes } from "@twin.org/document-management-models";
|
|
4
8
|
import { SchemaOrgContexts, SchemaOrgTypes } from "@twin.org/standards-schema-org";
|
|
@@ -70,18 +74,18 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
70
74
|
}
|
|
71
75
|
]
|
|
72
76
|
};
|
|
73
|
-
const
|
|
74
|
-
operationId: "
|
|
75
|
-
summary: "
|
|
77
|
+
const documentManagementUpdatePartialRoute = {
|
|
78
|
+
operationId: "DocumentManagementUpdatePartial",
|
|
79
|
+
summary: "Partially update a document in an auditable item graph vertex and add its content to blob storage.",
|
|
76
80
|
tag: tagsDocumentManagement[0].name,
|
|
77
|
-
method: "
|
|
81
|
+
method: "PATCH",
|
|
78
82
|
path: `${baseRouteName}/:auditableItemGraphDocumentId`,
|
|
79
|
-
handler: async (httpRequestContext, request) =>
|
|
83
|
+
handler: async (httpRequestContext, request) => documentManagementUpdatePartial(httpRequestContext, componentName, request),
|
|
80
84
|
requestType: {
|
|
81
|
-
type: "
|
|
85
|
+
type: "IDocumentManagementUpdatePartialRequest",
|
|
82
86
|
examples: [
|
|
83
87
|
{
|
|
84
|
-
id: "
|
|
88
|
+
id: "DocumentManagementUpdatePartialRequestExample",
|
|
85
89
|
request: {
|
|
86
90
|
pathParams: {
|
|
87
91
|
auditableItemGraphDocumentId: "aig:123456"
|
|
@@ -103,7 +107,7 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
103
107
|
type: "INoContentResponse",
|
|
104
108
|
examples: [
|
|
105
109
|
{
|
|
106
|
-
id: "
|
|
110
|
+
id: "DocumentManagementUpdatePartialResponseExample",
|
|
107
111
|
response: {
|
|
108
112
|
statusCode: HttpStatusCode.noContent
|
|
109
113
|
}
|
|
@@ -436,7 +440,7 @@ export function generateRestRoutesDocumentManagement(baseRouteName, componentNam
|
|
|
436
440
|
};
|
|
437
441
|
return [
|
|
438
442
|
documentManagementCreateRoute,
|
|
439
|
-
|
|
443
|
+
documentManagementUpdatePartialRoute,
|
|
440
444
|
documentManagementGetRoute,
|
|
441
445
|
documentManagementGetRevisionRoute,
|
|
442
446
|
documentManagementRemoveRevisionRoute,
|
|
@@ -478,13 +482,13 @@ export async function documentManagementGet(httpRequestContext, componentName, r
|
|
|
478
482
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
479
483
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
480
484
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.auditableItemGraphDocumentId", request.pathParams.auditableItemGraphDocumentId);
|
|
481
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
482
485
|
const component = ComponentFactory.get(componentName);
|
|
483
486
|
const result = await component.get(request.pathParams.auditableItemGraphDocumentId, {
|
|
484
487
|
includeBlobStorageMetadata: Coerce.boolean(request.query?.includeBlobStorageMetadata),
|
|
485
488
|
includeBlobStorageData: Coerce.boolean(request.query?.includeBlobStorageData),
|
|
486
489
|
includeAttestation: Coerce.boolean(request.query?.includeAttestation),
|
|
487
490
|
includeRemoved: Coerce.boolean(request.query?.includeRemoved),
|
|
491
|
+
includeDeletedEdges: Coerce.boolean(request.query?.includeDeletedEdges),
|
|
488
492
|
extractRuleGroupId: request.query?.extractRuleGroupId,
|
|
489
493
|
extractMimeType: request.query?.extractMimeType
|
|
490
494
|
}, request.query?.cursor, Coerce.integer(request.query?.limit));
|
|
@@ -492,7 +496,8 @@ export async function documentManagementGet(httpRequestContext, componentName, r
|
|
|
492
496
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
493
497
|
};
|
|
494
498
|
if (Is.stringValue(result.cursor)) {
|
|
495
|
-
|
|
499
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
500
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
496
501
|
}
|
|
497
502
|
return {
|
|
498
503
|
headers,
|
|
@@ -536,12 +541,12 @@ export async function documentManagementGetRevision(httpRequestContext, componen
|
|
|
536
541
|
* @param request The request.
|
|
537
542
|
* @returns The response object with additional http response properties.
|
|
538
543
|
*/
|
|
539
|
-
export async function
|
|
544
|
+
export async function documentManagementUpdatePartial(httpRequestContext, componentName, request) {
|
|
540
545
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
541
546
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
542
547
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.auditableItemGraphDocumentId", request.pathParams.auditableItemGraphDocumentId);
|
|
543
548
|
const component = ComponentFactory.get(componentName);
|
|
544
|
-
await component.
|
|
549
|
+
await component.updatePartial(request.pathParams.auditableItemGraphDocumentId, Is.stringValue(request.body.blob) ? Converter.base64ToBytes(request.body.blob) : undefined, request.body.annotationObject, request.body.auditableItemGraphEdges);
|
|
545
550
|
return {
|
|
546
551
|
statusCode: HttpStatusCode.noContent
|
|
547
552
|
};
|
|
@@ -557,8 +562,8 @@ export async function documentManagementRemove(httpRequestContext, componentName
|
|
|
557
562
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
558
563
|
Guards.object(ROUTES_SOURCE, "request.pathParams", request.pathParams);
|
|
559
564
|
Guards.stringValue(ROUTES_SOURCE, "request.pathParams.auditableItemGraphDocumentId", request.pathParams.auditableItemGraphDocumentId);
|
|
560
|
-
const revision = Coerce.
|
|
561
|
-
Guards.integer(ROUTES_SOURCE, "
|
|
565
|
+
const revision = Coerce.integer(request.pathParams.revision);
|
|
566
|
+
Guards.integer(ROUTES_SOURCE, "revision", revision);
|
|
562
567
|
const component = ComponentFactory.get(componentName);
|
|
563
568
|
await component.removeRevision(request.pathParams.auditableItemGraphDocumentId, revision);
|
|
564
569
|
return {
|
|
@@ -576,14 +581,14 @@ export async function documentManagementQuery(httpRequestContext, componentName,
|
|
|
576
581
|
Guards.object(ROUTES_SOURCE, "request", request);
|
|
577
582
|
Guards.object(ROUTES_SOURCE, "request.query", request.query);
|
|
578
583
|
Guards.stringValue(ROUTES_SOURCE, "request.query.documentId", request.query.documentId);
|
|
579
|
-
const hostingComponent = ComponentFactory.get(httpRequestContext.hostingComponentType ?? "hosting");
|
|
580
584
|
const component = ComponentFactory.get(componentName);
|
|
581
585
|
const result = await component.query(request.query.documentId, request.query?.cursor, Coerce.integer(request.query?.limit));
|
|
582
586
|
const headers = {
|
|
583
587
|
[HeaderTypes.ContentType]: request.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json
|
|
584
588
|
};
|
|
585
589
|
if (Is.stringValue(result.cursor)) {
|
|
586
|
-
|
|
590
|
+
const contextIds = await ContextIdStore.getContextIds();
|
|
591
|
+
headers[HeaderTypes.Link] = HeaderHelper.createLinkHeader(HttpUrlHelper.replaceOrigin(httpRequestContext.serverRequest.url, contextIds?.[HttpContextIdKeys.PublicOrigin]), { cursor: result.cursor }, "next");
|
|
587
592
|
}
|
|
588
593
|
return {
|
|
589
594
|
headers,
|
|
@@ -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\tIHostingComponent,\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 { HeaderHelper, 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%3A123456\"\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.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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.Context, AuditableItemGraphContexts.Context],\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.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\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.Context],\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.Context,\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\tintegrity: \"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 hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\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\tconst headers: IDocumentManagementGetResponse[\"headers\"] = {\n\t\t[HeaderTypes.ContentType]:\n\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json\n\t};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.entries\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 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]:\n\t\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd\n\t\t\t\t\t? MimeTypes.JsonLd\n\t\t\t\t\t: MimeTypes.Json\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 hostingComponent = ComponentFactory.get<IHostingComponent>(\n\t\thttpRequestContext.hostingComponentType ?? \"hosting\"\n\t);\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\tconst headers: IDocumentManagementQueryResponse[\"headers\"] = {\n\t\t[HeaderTypes.ContentType]:\n\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json\n\t};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tawait hostingComponent.buildPublicUrl(httpRequestContext.serverRequest.url),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.entries\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 {\n\tHttpContextIdKeys,\n\tHttpUrlHelper,\n\ttype ICreatedResponse,\n\ttype IHttpRequestContext,\n\ttype INoContentResponse,\n\ttype INotFoundResponse,\n\ttype IRestRoute,\n\ttype ITag\n} from \"@twin.org/api-models\";\nimport {\n\tAuditableItemGraphContexts,\n\tAuditableItemGraphTypes\n} from \"@twin.org/auditable-item-graph-models\";\nimport { ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Converter, Guards, Is } from \"@twin.org/core\";\nimport {\n\tDocumentContexts,\n\tDocumentTypes,\n\ttype IDocumentManagementComponent,\n\ttype IDocumentManagementCreateRequest,\n\ttype IDocumentManagementGetRequest,\n\ttype IDocumentManagementGetResponse,\n\ttype IDocumentManagementGetRevisionRequest,\n\ttype IDocumentManagementGetRevisionResponse,\n\ttype IDocumentManagementQueryRequest,\n\ttype IDocumentManagementQueryResponse,\n\ttype IDocumentManagementRemoveRequest,\n\ttype IDocumentManagementUpdatePartialRequest\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 { HeaderHelper, 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%3A123456\"\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 documentManagementUpdatePartialRoute: IRestRoute<\n\t\tIDocumentManagementUpdatePartialRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"DocumentManagementUpdatePartial\",\n\t\tsummary:\n\t\t\t\"Partially 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: \"PATCH\",\n\t\tpath: `${baseRouteName}/:auditableItemGraphDocumentId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tdocumentManagementUpdatePartial(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IDocumentManagementUpdatePartialRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"DocumentManagementUpdatePartialRequestExample\",\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: \"DocumentManagementUpdatePartialResponseExample\",\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.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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\tSchemaOrgContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.Context,\n\t\t\t\t\t\t\t\t\tDocumentContexts.ContextCommon\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\tintegrity: \"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.Context, AuditableItemGraphContexts.Context],\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.Context,\n\t\t\t\t\t\t\t\t\t\t\tAuditableItemGraphContexts.ContextCommon\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.Context],\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.Context,\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\tintegrity: \"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\tdocumentManagementUpdatePartialRoute,\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 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\tincludeDeletedEdges: Coerce.boolean(request.query?.includeDeletedEdges),\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\tconst headers: IDocumentManagementGetResponse[\"headers\"] = {\n\t\t[HeaderTypes.ContentType]:\n\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json\n\t};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tHttpUrlHelper.replaceOrigin(\n\t\t\t\thttpRequestContext.serverRequest.url,\n\t\t\t\tcontextIds?.[HttpContextIdKeys.PublicOrigin]\n\t\t\t),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.entries\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 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]:\n\t\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd\n\t\t\t\t\t? MimeTypes.JsonLd\n\t\t\t\t\t: MimeTypes.Json\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 documentManagementUpdatePartial(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IDocumentManagementUpdatePartialRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IDocumentManagementUpdatePartialRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IDocumentManagementUpdatePartialRequest[\"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.updatePartial(\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.integer(request.pathParams.revision);\n\tGuards.integer(ROUTES_SOURCE, nameof(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 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\tconst headers: IDocumentManagementQueryResponse[\"headers\"] = {\n\t\t[HeaderTypes.ContentType]:\n\t\t\trequest.headers?.[HeaderTypes.Accept] === MimeTypes.JsonLd ? MimeTypes.JsonLd : MimeTypes.Json\n\t};\n\n\tif (Is.stringValue(result.cursor)) {\n\t\tconst contextIds = await ContextIdStore.getContextIds();\n\t\theaders[HeaderTypes.Link] = HeaderHelper.createLinkHeader(\n\t\t\tHttpUrlHelper.replaceOrigin(\n\t\t\t\thttpRequestContext.serverRequest.url,\n\t\t\t\tcontextIds?.[HttpContextIdKeys.PublicOrigin]\n\t\t\t),\n\t\t\t{ cursor: result.cursor },\n\t\t\t\"next\"\n\t\t);\n\t}\n\n\treturn {\n\t\theaders,\n\t\tbody: result.entries\n\t};\n}\n"]}
|