Example #1
0
 public function renderRequest(Connection_Request_Interface $request)
 {
     $result = array();
     $result["method"] = $request->getMethod();
     if (!$request->isScalarParameter()) {
         $result["param"] = $this->prepareFieldNames($request->getParameters());
     } else {
         $result["param"] = $request->getScalarParameter();
     }
     $result = array_merge($result, $request->getHeaders());
     return $this->renderMap($result);
 }
Example #2
0
 public function invoke(Connection_Request_Interface $request)
 {
     if ($this->state != Connection_State::$established) {
         $this->connect();
     }
     if (!$request->isValid()) {
         throw new Entities_Validator_Exception(sprintf("Request %s validation failed!", get_class($request)));
     }
     if ($request->isAuthRequired()) {
         $request->setHeader(Connection_Request_Headers::$login, $this->_login);
         $request->setHeader(Connection_Request_Headers::$authToken, $this->_authToken);
         $request->setHeader(Connection_Request_Headers::$applicationId, $this->_applicationId);
     }
     $data = $this->prepareRequest($request);
     Utils::log(sprintf("Sending data on gateway: %s", $data));
     $status = fwrite($this->_socket, $data . "\n");
     if (!$status) {
         throw new Connection_Exception(sprintf("Method %s invocation failed!", $request->getMethod()));
     }
     $responseBody = fread($this->_socket, 4096);
     Utils::log(sprintf("Received response body: \n %s", $responseBody));
     $this->disconnect();
     return $this->getProtocol()->hydrateResponse($request, $responseBody);
 }