/** * Execute batch. * * @param Contracts\RequestExecutor $executor * * @throws Exception\JsonRpcException * * @return Jsonable|null */ public function execute(Contracts\RequestExecutor $executor) { /** @var Request[] $requests */ // $requests = array_map( // function ($requestData) { // return $this->requestFactory->createRequest($requestData); // }, $this->batch // ); $response = new BatchResponse(); foreach ($this->batch as $requestData) { $request = null; try { $request = $this->requestFactory->createRequest($requestData); $requestResponse = $executor->execute($request); if (null !== $requestResponse) { $response->add($requestResponse); } } catch (Exception\JsonRpcException $e) { $response->add(Response::constructExceptionErrorResponse($request ? $request->getId() : null, $e)); } catch (\Exception $e) { $response->add(Response::constructExceptionErrorResponse($request ? $request->getId() : null, $e)); } } return $response; }
/** * @param Contracts\RequestExecutor $executor * * @return Jsonable|null */ public function execute(Contracts\RequestExecutor $executor) { return $executor->execute($this); }