/** * @param object $requestData * * @throws Exception\JsonRpcException * * @return Request */ public function createRequest($requestData) { if (!is_object($requestData)) { throw new Exception\BadRequestException(); } if (!isset($requestData->jsonrpc) || $requestData->jsonrpc !== '2.0') { throw new Exception\BadRequestException(); } if (empty($requestData->method) || !is_string($requestData->method)) { throw new Exception\BadRequestException(); } $params = null; if (!empty($requestData->params)) { if (is_array($requestData->params)) { $params = RequestParams::constructPositional($requestData->params); } elseif (is_object($requestData->params)) { $params = RequestParams::constructNamed((array) $requestData->params); } else { throw new Exception\BadRequestException(); } } return new Request($requestData->method, $params, isset($requestData->id) ? $requestData->id : null); }