listVersions method
Implementation
Future<List<TableVersion>> listVersions(String table, {List<String>? namespace}) async {
final response = await _invoke("list_versions", {"table": table, "namespace": namespace});
if (response is! JsonContent) {
throw RoomServerException("unexpected return type from database.list_versions call");
}
final versions = response.json["versions"];
if (versions is! List) {
throw RoomServerException("unexpected return type from database.list_versions call");
}
return versions
.map((value) {
if (value is! Map) {
throw RoomServerException("unexpected return type from database.list_versions call");
}
final metadataJson = value["metadata_json"];
if (metadataJson is! String) {
throw RoomServerException("unexpected return type from database.list_versions call");
}
final metadata = jsonDecode(metadataJson);
if (metadata is! Map) {
throw RoomServerException("unexpected return type from database.list_versions call");
}
return TableVersion(
version: (value["version"] as num).toInt(),
timestamp: DateTime.parse(value["timestamp"] as String),
metadata: Map<String, dynamic>.from(metadata),
);
})
.toList(growable: false);
}