@twin.org/dataspace-control-plane-service 0.0.3-next.18 → 0.0.3-next.20

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.
@@ -1,5 +1,5 @@
1
1
  import { ContextIdKeys, ContextIdStore } from "@twin.org/context";
2
- import { ArrayHelper, BaseError, ComponentFactory, Converter, GeneralError, Guards, Is, NotFoundError, RandomHelper, StringHelper, UnauthorizedError } from "@twin.org/core";
2
+ import { ArrayHelper, BaseError, ComponentFactory, Converter, GeneralError, Guards, Is, NotFoundError, RandomHelper, StringHelper, UnauthorizedError, ValidationError } from "@twin.org/core";
3
3
  import { JsonLdHelper } from "@twin.org/data-json-ld";
4
4
  import { DataspaceAppFactory, TransferProcessRole } from "@twin.org/dataspace-models";
5
5
  import { EngineCoreFactory } from "@twin.org/engine-models";
@@ -334,9 +334,8 @@ export class DataspaceControlPlaneService {
334
334
  */
335
335
  async requestTransfer(request, trustPayload) {
336
336
  const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "requestTransfer");
337
- const validationFailures = [];
338
- const isConformant = await DataspaceProtocolHelper.checkConformance(JsonLdHelper.toNodeObject(request), validationFailures);
339
- if (!isConformant) {
337
+ const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(request));
338
+ if (validationFailures.length > 0) {
340
339
  await this._loggingComponent?.log({
341
340
  level: "error",
342
341
  source: DataspaceControlPlaneService.CLASS_NAME,
@@ -344,9 +343,7 @@ export class DataspaceControlPlaneService {
344
343
  message: "invalidTransferRequest",
345
344
  data: { validationFailures }
346
345
  });
347
- throw new GeneralError(DataspaceControlPlaneService.CLASS_NAME, "invalidTransferRequest", {
348
- validationFailures
349
- });
346
+ return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "request", validationFailures), request);
350
347
  }
351
348
  const providerPid = `urn:uuid:${RandomHelper.generateUuidV7()}`;
352
349
  let datasetId;
@@ -446,12 +443,16 @@ export class DataspaceControlPlaneService {
446
443
  */
447
444
  async startTransfer(message, publicOrigin, trustPayload) {
448
445
  const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "startTransfer");
449
- const validationFailures = [];
450
- const isConformant = await DataspaceProtocolHelper.checkConformance(JsonLdHelper.toNodeObject(message), validationFailures);
451
- if (!isConformant) {
452
- return transformToTransferError(new GeneralError(DataspaceControlPlaneService.CLASS_NAME, "invalidTransferStartMessage", {
453
- validationFailures
454
- }), message);
446
+ const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
447
+ if (validationFailures.length > 0) {
448
+ await this._loggingComponent?.log({
449
+ level: "error",
450
+ source: DataspaceControlPlaneService.CLASS_NAME,
451
+ ts: Date.now(),
452
+ message: "invalidTransferStartMessage",
453
+ data: { validationFailures }
454
+ });
455
+ return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
455
456
  }
456
457
  try {
457
458
  const { entity, role } = await this.lookupTransferByMessage(message);
@@ -604,10 +605,16 @@ export class DataspaceControlPlaneService {
604
605
  */
605
606
  async completeTransfer(message, trustPayload) {
606
607
  const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "completeTransfer");
607
- const validationFailures = [];
608
- const isConformant = await DataspaceProtocolHelper.checkConformance(JsonLdHelper.toNodeObject(message), validationFailures);
609
- if (!isConformant) {
610
- return transformToTransferError(new GeneralError(DataspaceControlPlaneService.CLASS_NAME, "invalidTransferCompletionMessage", { validationFailures }), message);
608
+ const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
609
+ if (validationFailures.length > 0) {
610
+ await this._loggingComponent?.log({
611
+ level: "error",
612
+ source: DataspaceControlPlaneService.CLASS_NAME,
613
+ ts: Date.now(),
614
+ message: "invalidTransferCompletionMessage",
615
+ data: { validationFailures }
616
+ });
617
+ return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
611
618
  }
612
619
  try {
613
620
  const { entity, role } = await this.lookupTransferByMessage(message);
@@ -653,10 +660,16 @@ export class DataspaceControlPlaneService {
653
660
  */
654
661
  async suspendTransfer(message, trustPayload) {
655
662
  const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "suspendTransfer");
656
- const validationFailures = [];
657
- const isConformant = await DataspaceProtocolHelper.checkConformance(JsonLdHelper.toNodeObject(message), validationFailures);
658
- if (!isConformant) {
659
- return transformToTransferError(new GeneralError(DataspaceControlPlaneService.CLASS_NAME, "invalidTransferSuspensionMessage", { validationFailures }), message);
663
+ const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
664
+ if (validationFailures.length > 0) {
665
+ await this._loggingComponent?.log({
666
+ level: "error",
667
+ source: DataspaceControlPlaneService.CLASS_NAME,
668
+ ts: Date.now(),
669
+ message: "invalidTransferSuspensionMessage",
670
+ data: { validationFailures }
671
+ });
672
+ return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
660
673
  }
661
674
  try {
662
675
  const { entity, role } = await this.lookupTransferByMessage(message);
@@ -703,10 +716,16 @@ export class DataspaceControlPlaneService {
703
716
  */
704
717
  async terminateTransfer(message, trustPayload) {
705
718
  const trustInfo = await TrustHelper.verifyTrust(this._trustComponent, trustPayload, "terminateTransfer");
706
- const validationFailures = [];
707
- const isConformant = await DataspaceProtocolHelper.checkConformance(JsonLdHelper.toNodeObject(message), validationFailures);
708
- if (!isConformant) {
709
- return transformToTransferError(new GeneralError(DataspaceControlPlaneService.CLASS_NAME, "invalidTransferTerminationMessage", { validationFailures }), message);
719
+ const validationFailures = await DataspaceProtocolHelper.validate(JsonLdHelper.toNodeObject(message));
720
+ if (validationFailures.length > 0) {
721
+ await this._loggingComponent?.log({
722
+ level: "error",
723
+ source: DataspaceControlPlaneService.CLASS_NAME,
724
+ ts: Date.now(),
725
+ message: "invalidTransferTerminationMessage",
726
+ data: { validationFailures }
727
+ });
728
+ return transformToTransferError(new ValidationError(DataspaceControlPlaneService.CLASS_NAME, "message", validationFailures), message);
710
729
  }
711
730
  try {
712
731
  const { entity, role } = await this.lookupTransferByMessage(message);