Beispiel #1
0
 private function checkResponse($response, $responseToken, $token, $query = null)
 {
     if (!isset($response['t'])) {
         throw new RqlDriverError("Response message has no type.");
     }
     if ($response['t'] == pb\Response_ResponseType::PB_CLIENT_ERROR) {
         throw new RqlDriverError("Server says PHP-RQL is buggy: " . $response['r'][0]);
     }
     if ($responseToken != $token) {
         throw new RqlDriverError("Received wrong token. Response does not match the request. Expected {$token}, received " . $responseToken);
     }
     if ($response['t'] == pb\Response_ResponseType::PB_COMPILE_ERROR) {
         $backtrace = null;
         if (isset($response['b'])) {
             $backtrace = Backtrace::_fromJSON($response['b']);
         }
         throw new RqlServerError("Compile error: " . $response['r'][0], $query, $backtrace);
     } else {
         if ($response['t'] == pb\Response_ResponseType::PB_RUNTIME_ERROR) {
             $backtrace = null;
             if (isset($response['b'])) {
                 $backtrace = Backtrace::_fromJSON($response['b']);
             }
             throw new RqlServerError("Runtime error: " . $response['r'][0], $query, $backtrace);
         }
     }
 }