@nmshd/runtime 2.2.0 → 2.2.2

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.
Files changed (30) hide show
  1. package/dist/buildInformation.js +5 -5
  2. package/dist/events/EventProxy.js +6 -2
  3. package/dist/events/EventProxy.js.map +1 -1
  4. package/dist/events/consumption/OutgoingRequestCreatedAndCompletedEvent.d.ts +6 -0
  5. package/dist/events/consumption/OutgoingRequestCreatedAndCompletedEvent.js +14 -0
  6. package/dist/events/consumption/OutgoingRequestCreatedAndCompletedEvent.js.map +1 -0
  7. package/dist/events/consumption/index.d.ts +1 -0
  8. package/dist/events/consumption/index.js +1 -0
  9. package/dist/events/consumption/index.js.map +1 -1
  10. package/dist/extensibility/facades/consumption/OutgoingRequestsFacade.d.ts +4 -4
  11. package/dist/extensibility/facades/consumption/OutgoingRequestsFacade.js +5 -5
  12. package/dist/extensibility/facades/consumption/OutgoingRequestsFacade.js.map +1 -1
  13. package/dist/modules/RequestModule.d.ts +3 -1
  14. package/dist/modules/RequestModule.js +26 -10
  15. package/dist/modules/RequestModule.js.map +1 -1
  16. package/dist/useCases/common/Schemas.d.ts +1 -1
  17. package/dist/useCases/common/Schemas.js +18 -7
  18. package/dist/useCases/common/Schemas.js.map +1 -1
  19. package/dist/useCases/consumption/requests/CompleteOutgoingRequest.js.map +1 -1
  20. package/dist/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.d.ts +9 -7
  21. package/dist/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js +23 -15
  22. package/dist/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js.map +1 -1
  23. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.d.ts +4 -1
  24. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.js +24 -1
  25. package/dist/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.js.map +1 -1
  26. package/lib-web/nmshd.runtime.js +1565 -1454
  27. package/lib-web/nmshd.runtime.js.map +1 -1
  28. package/lib-web/nmshd.runtime.min.js +3 -3
  29. package/lib-web/nmshd.runtime.min.js.map +1 -1
  30. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"CompleteOutgoingRequest.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/CompleteOutgoingRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA6D;AAC7D,oDAAmG;AACnG,4CAAwD;AACxD,gDAAsE;AACtE,mDAAwC;AAExC,yCAAuE;AACvE,mDAAgD;AAOhD,4EAA4E;AAC5E,uEAAuE;AACvE,+EAA+E;AAC/E,QAAQ;AACR,IAAI;AAEG,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,gBAAwD;IACxG,YAA4C,0BAAsD,EAA2B,iBAAoC;QAC7J,KAAK,EAAE,CAAC;QADgC,+BAA0B,GAA1B,0BAA0B,CAA4B;QAA2B,sBAAiB,GAAjB,iBAAiB,CAAmB;IAEjK,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAuC;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAO,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,MAAM,GAAsC;YAC9C,SAAS,EAAE,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAC1D,gBAAgB,EAAE,kBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACzD,oBAAoB,EAAE,OAAO;SAChC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE5E,OAAO,iBAAM,CAAC,EAAE,CAAC,6BAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,CAAC;CACJ,CAAA;AAtBY,8BAA8B;IACnB,WAAA,uBAAM,CAAA;IAA2E,WAAA,uBAAM,CAAA;qCAAnC,wCAA0B,EAA8C,6BAAiB;GADxJ,8BAA8B,CAsB1C;AAtBY,wEAA8B"}
1
+ {"version":3,"file":"CompleteOutgoingRequest.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/CompleteOutgoingRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA6D;AAC7D,oDAAoG;AACpG,4CAAwD;AACxD,gDAAsE;AACtE,mDAAwC;AAExC,yCAAuE;AACvE,mDAAgD;AAOhD,4EAA4E;AAC5E,uEAAuE;AACvE,+EAA+E;AAC/E,QAAQ;AACR,IAAI;AAEG,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,gBAAwD;IACxG,YAA4C,0BAAsD,EAA2B,iBAAoC;QAC7J,KAAK,EAAE,CAAC;QADgC,+BAA0B,GAA1B,0BAA0B,CAA4B;QAA2B,sBAAiB,GAAjB,iBAAiB,CAAmB;IAEjK,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAuC;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAO,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,MAAM,GAAuC;YAC/C,SAAS,EAAE,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAC1D,gBAAgB,EAAE,kBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACzD,oBAAoB,EAAE,OAAO;SAChC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE5E,OAAO,iBAAM,CAAC,EAAE,CAAC,6BAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,CAAC;CACJ,CAAA;AAtBY,8BAA8B;IACnB,WAAA,uBAAM,CAAA;IAA2E,WAAA,uBAAM,CAAA;qCAAnC,wCAA0B,EAA8C,6BAAiB;GADxJ,8BAA8B,CAsB1C;AAtBY,wEAA8B"}
@@ -1,16 +1,18 @@
1
1
  import { ApplicationError, Result } from "@js-soft/ts-utils";
2
2
  import { OutgoingRequestsController } from "@nmshd/consumption";
3
- import { RelationshipsController, RelationshipTemplateController } from "@nmshd/transport";
3
+ import { MessageController, RelationshipsController, RelationshipTemplateController } from "@nmshd/transport";
4
4
  import { LocalRequestDTO } from "../../../types";
5
- import { RelationshipChangeIdString, RelationshipTemplateIdString, UseCase } from "../../common";
6
- export interface CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest {
5
+ import { MessageIdString, RelationshipChangeIdString, RelationshipTemplateIdString, UseCase } from "../../common";
6
+ export interface CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseRequest {
7
7
  templateId: RelationshipTemplateIdString;
8
- relationshipChangeId: RelationshipChangeIdString;
8
+ responseSourceId: RelationshipChangeIdString | MessageIdString;
9
9
  }
10
- export declare class CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase extends UseCase<CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest, LocalRequestDTO> {
10
+ export declare class CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase extends UseCase<CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseRequest, LocalRequestDTO> {
11
11
  private readonly outgoingRequestsController;
12
12
  private readonly relationshipController;
13
13
  private readonly relationshipTemplateController;
14
- constructor(outgoingRequestsController: OutgoingRequestsController, relationshipController: RelationshipsController, relationshipTemplateController: RelationshipTemplateController);
15
- protected executeInternal(request: CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeRequest): Promise<Result<LocalRequestDTO, ApplicationError>>;
14
+ private readonly messageController;
15
+ constructor(outgoingRequestsController: OutgoingRequestsController, relationshipController: RelationshipsController, relationshipTemplateController: RelationshipTemplateController, messageController: MessageController);
16
+ protected executeInternal(request: CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseRequest): Promise<Result<LocalRequestDTO, ApplicationError>>;
17
+ private getResponseSource;
16
18
  }
@@ -12,45 +12,53 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase = void 0;
15
+ exports.CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase = void 0;
16
16
  const ts_utils_1 = require("@js-soft/ts-utils");
17
17
  const consumption_1 = require("@nmshd/consumption");
18
18
  const transport_1 = require("@nmshd/transport");
19
19
  const typescript_ioc_1 = require("typescript-ioc");
20
20
  const common_1 = require("../../common");
21
21
  const RequestMapper_1 = require("./RequestMapper");
22
- let CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase = class CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase extends common_1.UseCase {
23
- constructor(outgoingRequestsController, relationshipController, relationshipTemplateController) {
22
+ let CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase = class CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase extends common_1.UseCase {
23
+ constructor(outgoingRequestsController, relationshipController, relationshipTemplateController, messageController) {
24
24
  super();
25
25
  this.outgoingRequestsController = outgoingRequestsController;
26
26
  this.relationshipController = relationshipController;
27
27
  this.relationshipTemplateController = relationshipTemplateController;
28
+ this.messageController = messageController;
28
29
  }
29
30
  async executeInternal(request) {
30
31
  const template = await this.relationshipTemplateController.getRelationshipTemplate(transport_1.CoreId.from(request.templateId));
31
32
  if (!template) {
32
33
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipTemplate));
33
34
  }
34
- const relationships = await this.relationshipController.getRelationships({ "cache.changes.id": request.relationshipChangeId });
35
- if (relationships.length === 0) {
35
+ const responseSource = await this.getResponseSource(request.responseSourceId);
36
+ if (!responseSource) {
36
37
  return ts_utils_1.Result.fail(common_1.RuntimeErrors.general.recordNotFound(transport_1.RelationshipChange));
37
38
  }
38
- const relationship = relationships[0];
39
- const params = {
40
- template: template,
41
- creationChange: relationship.cache.creationChange
42
- };
43
- const localRequest = await this.outgoingRequestsController.createFromRelationshipCreationChange(params);
39
+ const localRequest = await this.outgoingRequestsController.createFromRelationshipTemplateResponse({ template, responseSource });
44
40
  return ts_utils_1.Result.ok(RequestMapper_1.RequestMapper.toLocalRequestDTO(localRequest));
45
41
  }
42
+ async getResponseSource(responseSourceId) {
43
+ if (responseSourceId.startsWith("MSG"))
44
+ return await this.messageController.getMessage(transport_1.CoreId.from(responseSourceId));
45
+ const relationships = await this.relationshipController.getRelationships({ "cache.changes.id": responseSourceId });
46
+ if (relationships.length !== 0) {
47
+ const relationship = relationships[0];
48
+ return relationship.cache.creationChange;
49
+ }
50
+ return;
51
+ }
46
52
  };
47
- CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase = __decorate([
53
+ CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase = __decorate([
48
54
  __param(0, typescript_ioc_1.Inject),
49
55
  __param(1, typescript_ioc_1.Inject),
50
56
  __param(2, typescript_ioc_1.Inject),
57
+ __param(3, typescript_ioc_1.Inject),
51
58
  __metadata("design:paramtypes", [consumption_1.OutgoingRequestsController,
52
59
  transport_1.RelationshipsController,
53
- transport_1.RelationshipTemplateController])
54
- ], CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase);
55
- exports.CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase = CreateAndCompleteOutgoingRequestFromRelationshipCreationChangeUseCase;
60
+ transport_1.RelationshipTemplateController,
61
+ transport_1.MessageController])
62
+ ], CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase);
63
+ exports.CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase = CreateAndCompleteOutgoingRequestFromRelationshipTemplateResponseUseCase;
56
64
  //# sourceMappingURL=CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA6D;AAC7D,oDAAgI;AAChI,gDAA6I;AAC7I,mDAAwC;AAExC,yCAAgH;AAChH,mDAAgD;AAOzC,IAAM,qEAAqE,GAA3E,MAAM,qEAAsE,SAAQ,gBAG1F;IACG,YAC6B,0BAAsD,EACtD,sBAA+C,EAC/C,8BAA8D;QAEvF,KAAK,EAAE,CAAC;QAJiB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,2BAAsB,GAAtB,sBAAsB,CAAyB;QAC/C,mCAA8B,GAA9B,8BAA8B,CAAgC;IAG3F,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA8E;QAC1G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAoB,CAAC,CAAC,CAAC;SAClF;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC/H,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,8BAAkB,CAAC,CAAC,CAAC;SAChF;QACD,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAmE;YAC3E,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,YAAY,CAAC,KAAM,CAAC,cAAc;SACrD,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;QAExG,OAAO,iBAAM,CAAC,EAAE,CAAC,6BAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,CAAC;CACJ,CAAA;AAjCY,qEAAqE;IAKzE,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAF8C,wCAA0B;QAC9B,mCAAuB;QACf,0CAA8B;GAPlF,qEAAqE,CAiCjF;AAjCY,sJAAqE"}
1
+ {"version":3,"file":"CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.js","sourceRoot":"","sources":["../../../../src/useCases/consumption/requests/CreateAndCompleteOutgoingRequestFromRelationshipCreationChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA6D;AAC7D,oDAAgE;AAChE,gDAAgK;AAChK,mDAAwC;AAExC,yCAAiI;AACjI,mDAAgD;AAOzC,IAAM,uEAAuE,GAA7E,MAAM,uEAAwE,SAAQ,gBAG5F;IACG,YAC6B,0BAAsD,EACtD,sBAA+C,EAC/C,8BAA8D,EAC9D,iBAAoC;QAE7D,KAAK,EAAE,CAAC;QALiB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,2BAAsB,GAAtB,sBAAsB,CAAyB;QAC/C,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,sBAAiB,GAAjB,iBAAiB,CAAmB;IAGjE,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAAgF;QAC5G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAoB,CAAC,CAAC,CAAC;SAClF;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE9E,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,iBAAM,CAAC,IAAI,CAAC,sBAAa,CAAC,OAAO,CAAC,cAAc,CAAC,8BAAkB,CAAC,CAAC,CAAC;SAChF;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,sCAAsC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;QAEhI,OAAO,iBAAM,CAAC,EAAE,CAAC,6BAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,gBAAwB;QACpD,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEtH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACnH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO,YAAY,CAAC,KAAM,CAAC,cAAc,CAAC;SAC7C;QAED,OAAO;IACX,CAAC;CACJ,CAAA;AAzCY,uEAAuE;IAK3E,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAH8C,wCAA0B;QAC9B,mCAAuB;QACf,0CAA8B;QAC3C,6BAAiB;GARxD,uEAAuE,CAyCnF;AAzCY,0JAAuE"}
@@ -1,4 +1,5 @@
1
1
  import { Result } from "@js-soft/ts-utils";
2
+ import { OutgoingRequestsController } from "@nmshd/consumption";
2
3
  import { AccountController, RelationshipTemplateController } from "@nmshd/transport";
3
4
  import { RelationshipTemplateDTO } from "../../../types";
4
5
  import { ISO8601DateTimeString, SchemaRepository, SchemaValidator, UseCase, ValidationResult } from "../../common";
@@ -17,7 +18,9 @@ declare class Validator extends SchemaValidator<CreateOwnRelationshipTemplateReq
17
18
  export declare class CreateOwnRelationshipTemplateUseCase extends UseCase<CreateOwnRelationshipTemplateRequest, RelationshipTemplateDTO> {
18
19
  private readonly templateController;
19
20
  private readonly accountController;
20
- constructor(templateController: RelationshipTemplateController, accountController: AccountController, validator: Validator);
21
+ private readonly outgoingRequestsController;
22
+ constructor(templateController: RelationshipTemplateController, accountController: AccountController, outgoingRequestsController: OutgoingRequestsController, validator: Validator);
21
23
  protected executeInternal(request: CreateOwnRelationshipTemplateRequest): Promise<Result<RelationshipTemplateDTO>>;
24
+ private validateRelationshipTemplateContent;
22
25
  }
23
26
  export {};
@@ -13,7 +13,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CreateOwnRelationshipTemplateUseCase = void 0;
16
+ const ts_serval_1 = require("@js-soft/ts-serval");
16
17
  const ts_utils_1 = require("@js-soft/ts-utils");
18
+ const consumption_1 = require("@nmshd/consumption");
19
+ const content_1 = require("@nmshd/content");
17
20
  const transport_1 = require("@nmshd/transport");
18
21
  const luxon_1 = require("luxon");
19
22
  const ts_simple_nameof_1 = require("ts-simple-nameof");
@@ -39,12 +42,16 @@ Validator = __decorate([
39
42
  __metadata("design:paramtypes", [common_1.SchemaRepository])
40
43
  ], Validator);
41
44
  let CreateOwnRelationshipTemplateUseCase = class CreateOwnRelationshipTemplateUseCase extends common_1.UseCase {
42
- constructor(templateController, accountController, validator) {
45
+ constructor(templateController, accountController, outgoingRequestsController, validator) {
43
46
  super(validator);
44
47
  this.templateController = templateController;
45
48
  this.accountController = accountController;
49
+ this.outgoingRequestsController = outgoingRequestsController;
46
50
  }
47
51
  async executeInternal(request) {
52
+ const validationError = await this.validateRelationshipTemplateContent(request.content);
53
+ if (validationError)
54
+ return ts_utils_1.Result.fail(validationError);
48
55
  const relationshipTemplate = await this.templateController.sendRelationshipTemplate({
49
56
  content: request.content,
50
57
  expiresAt: transport_1.CoreDate.from(request.expiresAt),
@@ -53,13 +60,29 @@ let CreateOwnRelationshipTemplateUseCase = class CreateOwnRelationshipTemplateUs
53
60
  await this.accountController.syncDatawallet();
54
61
  return ts_utils_1.Result.ok(RelationshipTemplateMapper_1.RelationshipTemplateMapper.toRelationshipTemplateDTO(relationshipTemplate));
55
62
  }
63
+ async validateRelationshipTemplateContent(content) {
64
+ const transformedContent = ts_serval_1.Serializable.fromUnknown(content);
65
+ if (!(transformedContent instanceof content_1.RelationshipTemplateContent))
66
+ return;
67
+ const validationResult = await this.outgoingRequestsController.canCreate({ content: transformedContent.onNewRelationship });
68
+ if (validationResult.isError())
69
+ return validationResult.error;
70
+ if (transformedContent.onExistingRelationship) {
71
+ const validationResult = await this.outgoingRequestsController.canCreate({ content: transformedContent.onExistingRelationship });
72
+ if (validationResult.isError())
73
+ return validationResult.error;
74
+ }
75
+ return;
76
+ }
56
77
  };
57
78
  CreateOwnRelationshipTemplateUseCase = __decorate([
58
79
  __param(0, typescript_ioc_1.Inject),
59
80
  __param(1, typescript_ioc_1.Inject),
60
81
  __param(2, typescript_ioc_1.Inject),
82
+ __param(3, typescript_ioc_1.Inject),
61
83
  __metadata("design:paramtypes", [transport_1.RelationshipTemplateController,
62
84
  transport_1.AccountController,
85
+ consumption_1.OutgoingRequestsController,
63
86
  Validator])
64
87
  ], CreateOwnRelationshipTemplateUseCase);
65
88
  exports.CreateOwnRelationshipTemplateUseCase = CreateOwnRelationshipTemplateUseCase;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateOwnRelationshipTemplate.js","sourceRoot":"","sources":["../../../../src/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAA2C;AAC3C,gDAA+F;AAC/F,iCAAiC;AACjC,uDAA0C;AAC1C,mDAAwC;AAExC,yCAAqJ;AACrJ,6EAA0E;AAW1E,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,wBAAqD;IACzE,YAA2B,gBAAkC;QACzD,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEM,QAAQ,CAAC,KAA2C;QACvD,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAAE,OAAO,gBAAgB,CAAC;QAEzD,IAAI,gBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,gBAAQ,CAAC,GAAG,EAAE,EAAE;YACrD,gBAAgB,CAAC,UAAU,CACvB,IAAI,0BAAiB,CACjB,sBAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,IAAA,yBAAM,EAAuC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,EACzI,IAAA,yBAAM,EAAuC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACnE,CACJ,CAAC;SACL;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ,CAAA;AApBK,SAAS;IACS,WAAA,uBAAM,CAAA;qCAAmB,yBAAgB;GAD3D,SAAS,CAoBd;AAEM,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,gBAAsE;IAC5H,YAC6B,kBAAkD,EAClD,iBAAoC,EACrD,SAAoB;QAE5B,KAAK,CAAC,SAAS,CAAC,CAAC;QAJQ,uBAAkB,GAAlB,kBAAkB,CAAgC;QAClD,sBAAiB,GAAjB,iBAAiB,CAAmB;IAIjE,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,OAA6C;QACzE,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;YAChF,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,oBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAC3C,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;SACzD,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QAE9C,OAAO,iBAAM,CAAC,EAAE,CAAC,uDAA0B,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjG,CAAC;CACJ,CAAA;AApBY,oCAAoC;IAExC,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;IACN,WAAA,uBAAM,CAAA;qCAFsC,0CAA8B;QAC/B,6BAAiB;QAC1C,SAAS;GAJvB,oCAAoC,CAoBhD;AApBY,oFAAoC"}
1
+ {"version":3,"file":"CreateOwnRelationshipTemplate.js","sourceRoot":"","sources":["../../../../src/useCases/transport/relationshipTemplates/CreateOwnRelationshipTemplate.ts"],"names":[],"mappings":"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"}