コード例 #1
0
ファイル: Batch.php プロジェクト: dkulyk/json-rpc
 /**
  * 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;
 }
コード例 #2
0
ファイル: Request.php プロジェクト: dkulyk/json-rpc
 /**
  * @param Contracts\RequestExecutor $executor
  *
  * @return Jsonable|null
  */
 public function execute(Contracts\RequestExecutor $executor)
 {
     return $executor->execute($this);
 }