7 declare(strict_types=1);
30 private $paramsOverrider;
34 private $serviceInputProcessor;
42 private $requestValidator;
46 private $inputParamsResolver;
69 WebapiInputParamsResolver $inputParamsResolver,
73 $this->paramsOverrider = $paramsOverrider;
74 $this->serviceInputProcessor = $inputProcessor;
75 $this->router = $router;
76 $this->requestValidator = $requestValidator;
77 $this->inputParamsResolver = $inputParamsResolver;
78 $this->isBulk = $isBulk;
94 if ($this->isBulk ===
false) {
95 return [$this->inputParamsResolver->resolve()];
97 $this->requestValidator->validate();
98 $webapiResolvedParams = [];
99 $inputData = $this->request->getRequestData();
101 $httpMethod = $this->request->getHttpMethod();
102 if ($httpMethod == \
Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_DELETE) {
103 $requestBodyParams = $this->request->getBodyParams();
104 $inputData = array_merge($requestBodyParams, $inputData);
107 foreach ($inputData as $key => $singleEntityParams) {
108 $webapiResolvedParams[$key] = $this->resolveBulkItemParams($singleEntityParams);
111 return $webapiResolvedParams;
121 return $this->inputParamsResolver->getRoute();
137 private function resolveBulkItemParams($inputData)
140 $serviceMethodName = $route->getServiceMethod();
141 $serviceClassName = $route->getServiceClass();
142 $inputParams = $this->serviceInputProcessor->process($serviceClassName, $serviceMethodName, $inputData);