@@ -9,6 +9,7 @@ import { ConsumptionControllerName } from "../../../consumption/ConsumptionContr
9
9
import { ConsumptionCoreErrors } from "../../../consumption/ConsumptionCoreErrors" ;
10
10
import { ConsumptionError } from "../../../consumption/ConsumptionError" ;
11
11
import { ConsumptionIds } from "../../../consumption/ConsumptionIds" ;
12
+ import { mergeResults } from "../../common" ;
12
13
import { ValidationResult } from "../../common/ValidationResult" ;
13
14
import { IncomingRequestReceivedEvent , IncomingRequestStatusChangedEvent } from "../events" ;
14
15
import { RequestItemProcessorRegistry } from "../itemProcessors/RequestItemProcessorRegistry" ;
@@ -214,12 +215,22 @@ export class IncomingRequestsController extends ConsumptionBaseController {
214
215
) ;
215
216
}
216
217
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 ;
219
220
220
- const itemResults = await this . canDecideItems ( params . items , request . content . items , request ) ;
221
+ const validateItemsResult = this . decideRequestParamsValidator . validateItems ( params , request ) ;
221
222
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
+ }
223
234
}
224
235
225
236
private async canDecideGroup ( params : DecideRequestItemGroupParametersJSON , requestItemGroup : RequestItemGroup , request : LocalRequest ) {
0 commit comments