Module: SurrealDB::Protocol::Response

Defined in:
lib/surrealdb/protocol/response.rb

Overview

Parses RPC responses and extracts results or raises appropriate errors.

Class Method Summary collapse

Class Method Details

.extract_result(data) ⇒ Object

Extracts the result from a decoded RPC response, raising on error.

Parameters:

  • data (Hash)

    decoded CBOR response

Returns:

  • (Object)

    the result value

Raises:



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/surrealdb/protocol/response.rb', line 15

def extract_result(data)
  raise ProtocolError, "malformed response: expected Hash, got #{data.class}" unless data.is_a?(Hash)

  err = data['error']
  if err && !err.is_a?(SurrealDB::None) && !err.equal?(SurrealDB::NONE)
    raise_server_error(err)
  elsif data.key?('result')
    data['result']
  else
    raise ProtocolError, "response missing both 'result' and 'error' keys"
  end
end