From d72fe2ae178d91fee2bb77b2548294703158a020 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:53:50 -0500 Subject: [PATCH] fix: don't error out of analytics download on space hierarchy error (#1436) --- .../room_analytics_extension.dart | 52 ++++++++++++++----- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart b/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart index ee2da394a..b3b9e1807 100644 --- a/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/room_analytics_extension.dart @@ -2,24 +2,50 @@ part of "pangea_room_extension.dart"; extension AnalyticsRoomExtension on Room { Future> _getFullSpaceHierarchy() async { - final resp = await client.getSpaceHierarchy( - id, - limit: 100, - maxDepth: 1, - ); + final List rooms = []; + String? nextBatch; - final List rooms = resp.rooms; - String? nextBatch = resp.nextBatch; - int tries = 0; - - while (nextBatch != null && tries <= 5) { - final nextResp = await client.getSpaceHierarchy( + try { + final resp = await client.getSpaceHierarchy( id, - from: nextBatch, limit: 100, maxDepth: 1, ); - rooms.addAll(nextResp.rooms); + rooms.addAll(resp.rooms); + nextBatch = resp.nextBatch; + } catch (e, s) { + ErrorHandler.logError( + e: e, + s: s, + data: { + "spaceID": id, + }, + ); + return rooms; + } + + int tries = 0; + while (nextBatch != null && tries <= 5) { + GetSpaceHierarchyResponse nextResp; + try { + nextResp = await client.getSpaceHierarchy( + id, + from: nextBatch, + limit: 100, + maxDepth: 1, + ); + rooms.addAll(nextResp.rooms); + } catch (e, s) { + ErrorHandler.logError( + e: e, + s: s, + data: { + "spaceID": id, + }, + ); + break; + } + nextBatch = nextResp.nextBatch; tries++; }