@@ -9,6 +9,7 @@ import { ConsumptionControllerName } from "../../../consumption/ConsumptionContr
99import { ConsumptionCoreErrors } from "../../../consumption/ConsumptionCoreErrors" ;
1010import { ConsumptionError } from "../../../consumption/ConsumptionError" ;
1111import { ConsumptionIds } from "../../../consumption/ConsumptionIds" ;
12+ import { mergeResults } from "../../common" ;
1213import { ValidationResult } from "../../common/ValidationResult" ;
1314import { IncomingRequestReceivedEvent , IncomingRequestStatusChangedEvent } from "../events" ;
1415import { RequestItemProcessorRegistry } from "../itemProcessors/RequestItemProcessorRegistry" ;
@@ -214,12 +215,22 @@ export class IncomingRequestsController extends ConsumptionBaseController {
214215 ) ;
215216 }
216217
217- const validationResult = this . decideRequestParamsValidator . validate ( params , request ) ;
218- if ( validationResult . isError ( ) ) return validationResult ;
218+ const validateRequestResult = this . decideRequestParamsValidator . validateRequest ( params , request ) ;
219+ if ( validateRequestResult . isError ( ) ) return validateRequestResult ;
219220
220- const itemResults = await this . canDecideItems ( params . items , request . content . items , request ) ;
221+ const validateItemsResult = this . decideRequestParamsValidator . validateItems ( params , request ) ;
221222
222- return ValidationResult . fromItems ( itemResults ) ;
223+ const canDecideItemsResults = await this . canDecideItems ( params . items , request . content . items , request ) ;
224+ const canDecideItemsResult = ValidationResult . fromItems ( canDecideItemsResults ) ;
225+
226+ try {
227+ return mergeResults ( validateItemsResult , canDecideItemsResult ) ;
228+ } catch ( _ ) {
229+ this . _log . error (
230+ `Merging '${ JSON . stringify ( validateItemsResult ) } ' and '${ JSON . stringify ( canDecideItemsResult ) } ' was not possible because their dimensions don't match.`
231+ ) ;
232+ return validateItemsResult . isError ( ) ? validateItemsResult : canDecideItemsResult ;
233+ }
223234 }
224235
225236 private async canDecideGroup ( params : DecideRequestItemGroupParametersJSON , requestItemGroup : RequestItemGroup , request : LocalRequest ) {
0 commit comments