getServerInfo function

Future<ServerInfoMessage> getServerInfo(
  1. String serverUrl
)

Get server information from the /info endpoint (no authentication required).

Useful for checking server availability and version before connecting.

Implementation

Future<ServerInfoMessage> getServerInfo(String serverUrl) async {
  try {
    final response = await http.get(Uri.parse(serverUrl).resolve('info'));
    if (response.statusCode != 200) {
      throw CannotConnectException('Failed to get server info with status ${response.statusCode}');
    }
    return ServerInfoMessage.fromJson(jsonDecode(response.body) as Map<String, dynamic>);
  } on CannotConnectException {
    rethrow;
  } on http.ClientException catch (e) {
    throw CannotConnectException(e.message);
  }
}