From 43ab43966f2d0fd69786d9d66de75fe847b0817c Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Fri, 9 Sep 2022 17:16:58 +0200 Subject: [PATCH] fix: properly handle events not already in the db fixes https://gitlab.com/famedly/app/-/issues/1798 --- lib/src/database/hive_database.dart | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/src/database/hive_database.dart b/lib/src/database/hive_database.dart index 2083101d..5795ecab 100644 --- a/lib/src/database/hive_database.dart +++ b/lib/src/database/hive_database.dart @@ -374,17 +374,14 @@ class FamedlySdkHiveDatabase extends DatabaseApi { } /// Loads a whole list of events at once from the store for a specific room - Future> _getEventsByIds(List eventIds, Room room) => - Future.wait(eventIds - .map( - (eventId) async => Event.fromJson( - convertToJson( - await _eventsBox.get(MultiKey(room.id, eventId).toString()), - ), - room, - ), - ) - .toList()); + Future> _getEventsByIds(List eventIds, Room room) async { + final events = await Future.wait(eventIds.map((String eventId) async { + final entry = await _eventsBox.get(MultiKey(room.id, eventId).toString()); + return entry is Map ? Event.fromJson(convertToJson(entry), room) : null; + })); + + return events.whereType().toList(); + } @override Future> getEventList(