Skip to content

Commit 206f5ce

Browse files
committed
fix: do not allow multiple request that would lead to a Relationship
1 parent 0ff6901 commit 206f5ce

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

packages/runtime/src/modules/RequestModule.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,25 @@ export class RequestModule extends RuntimeModule {
114114
return;
115115
}
116116

117+
const otherRequestsThatWouldLeadToARelationship = (
118+
await services.consumptionServices.incomingRequests.getRequests({
119+
query: { "source.type": "RelationshipTemplate", status: [LocalRequestStatus.Open, LocalRequestStatus.DecisionRequired, LocalRequestStatus.ManualDecisionRequired] }
120+
})
121+
).value;
122+
if (otherRequestsThatWouldLeadToARelationship.length !== 0) {
123+
this.logger.info(
124+
`There is already an open Request for a RelationshipTemplate that would lead to a Relationship with the creator of the RelationshipTemplate '${template.id}'. Skipping creation of a new Request.`
125+
);
126+
this.runtime.eventBus.publish(
127+
new RelationshipTemplateProcessedEvent(event.eventTargetAddress, {
128+
template,
129+
result: RelationshipTemplateProcessedResult.NonCompletedRequestExists,
130+
requestId: otherRequestsThatWouldLeadToARelationship[0].id
131+
})
132+
);
133+
return;
134+
}
135+
117136
const requestCreated = await this.createIncomingRequest(services, body.onNewRelationship, template.id);
118137

119138
if (!requestCreated) {

0 commit comments

Comments
 (0)