From 657a332b03ac805cd2ce90ebb2e7aec865590332 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Tue, 22 Mar 2022 11:46:48 +0100 Subject: [PATCH] refactor: Simplify relates to and make it more type safe Everything in content is user generated so we should never expect correct types and return null instead. --- lib/src/event.dart | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/src/event.dart b/lib/src/event.dart index b8979b46..1ac802f5 100644 --- a/lib/src/event.dart +++ b/lib/src/event.dart @@ -673,17 +673,11 @@ class Event extends MatrixEvent { /// Get the event ID that this relationship will reference. `null` if there is none String? get relationshipEventId { - if (!(content['m.relates_to'] is Map)) { - return null; - } - if (content['m.relates_to'].containsKey('event_id')) { - return content['m.relates_to']['event_id']; - } - if (content['m.relates_to']['m.in_reply_to'] is Map && - content['m.relates_to']['m.in_reply_to'].containsKey('event_id')) { - return content['m.relates_to']['m.in_reply_to']['event_id']; - } - return null; + final relatesToMap = content.tryGetMap('m.relates_to'); + return relatesToMap?.tryGet('event_id') ?? + relatesToMap + ?.tryGetMap('m.in_reply_to') + ?.tryGet('event_id'); } /// Get whether this event has aggregated events from a certain [type]