Skip to content

Commit

Permalink
refactor: prepare reusability of code
Browse files Browse the repository at this point in the history
  • Loading branch information
britsta committed Dec 5, 2024
1 parent 4763175 commit e4fa4a7
Showing 1 changed file with 21 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -292,18 +292,36 @@ export class IncomingRequestsController extends ConsumptionBaseController {
params: (DecideRequestItemParametersJSON | DecideRequestItemGroupParametersJSON)[]
) {
const fragmentsOfMustBeAcceptedItemsOfRequest: RelationshipAttributeFragment[] = [];
const fragmentsOfAcceptedItemsOfRequest: RelationshipAttributeFragment[] = [];

for (let i = 0; i < params.length; i++) {
const item = items[i];
const decideItemParams = params[i];

if (item instanceof RequestItemGroup) {
const fragmentsOfMustBeAcceptedItemsOfGroup = this.extractRelationshipAttributeFragmentsFromMustBeAcceptedItemsOfGroup(item);
if (fragmentsOfMustBeAcceptedItemsOfGroup) {
fragmentsOfMustBeAcceptedItemsOfRequest.push(...fragmentsOfMustBeAcceptedItemsOfGroup);
}
} else {
const fragmentOfMustBeAcceptedRequestItem = this.extractRelationshipAttributeFragmentFromMustBeAcceptedRequestItem(item);
if (fragmentOfMustBeAcceptedRequestItem) {
fragmentsOfMustBeAcceptedItemsOfRequest.push(fragmentOfMustBeAcceptedRequestItem);
}
}
}

if (IncomingRequestsController.containsDuplicateRelationshipAttributeFragments(fragmentsOfMustBeAcceptedItemsOfRequest)) {
throw ConsumptionCoreErrors.requests.violatedKeyUniquenessOfRelationshipAttributes(
"The Request can never be accepted because it would lead to the creation of more than one RelationshipAttribute in the context of this Relationship with the same key, owner and value type."
);
}

const fragmentsOfAcceptedItemsOfRequest: RelationshipAttributeFragment[] = [];

for (let i = 0; i < params.length; i++) {
const item = items[i];
const decideItemParams = params[i];

if (item instanceof RequestItemGroup) {
const fragmentsOfAcceptedItemsOfGroup = this.extractRelationshipAttributeFragmentsFromAcceptedItemsOfGroup(
item,
decideItemParams as DecideRequestItemGroupParametersJSON
Expand All @@ -312,23 +330,14 @@ export class IncomingRequestsController extends ConsumptionBaseController {
fragmentsOfAcceptedItemsOfRequest.push(...fragmentsOfAcceptedItemsOfGroup);
}
} else {
const fragmentOfMustBeAcceptedRequestItem = this.extractRelationshipAttributeFragmentFromMustBeAcceptedRequestItem(item);
if (fragmentOfMustBeAcceptedRequestItem) {
fragmentsOfMustBeAcceptedItemsOfRequest.push(fragmentOfMustBeAcceptedRequestItem);
}

const fragmentOfAcceptedRequestItem = this.extractRelationshipAttributeFragmentFromAcceptedRequestItem(item, decideItemParams as DecideRequestItemParametersJSON);
if (fragmentOfAcceptedRequestItem) {
fragmentsOfAcceptedItemsOfRequest.push(fragmentOfAcceptedRequestItem);
}
}
}

if (IncomingRequestsController.containsDuplicateRelationshipAttributeFragments(fragmentsOfMustBeAcceptedItemsOfRequest)) {
throw ConsumptionCoreErrors.requests.violatedKeyUniquenessOfRelationshipAttributes(
"The Request can never be accepted because it would lead to the creation of more than one RelationshipAttribute in the context of this Relationship with the same key, owner and value type."
);
} else if (IncomingRequestsController.containsDuplicateRelationshipAttributeFragments(fragmentsOfAcceptedItemsOfRequest)) {
if (IncomingRequestsController.containsDuplicateRelationshipAttributeFragments(fragmentsOfAcceptedItemsOfRequest)) {
return ValidationResult.error(
ConsumptionCoreErrors.requests.invalidAcceptParameters(
"The Request cannot be accepted with this parameters because it would lead to the creation of more than one RelationshipAttribute in the context of this Relationship with the same key, owner and value type."
Expand Down

0 comments on commit e4fa4a7

Please sign in to comment.