From d3f90c8eda35ba8c1a87ee0ae7ff9a88b16ed751 Mon Sep 17 00:00:00 2001 From: nxshock Date: Sun, 11 Aug 2019 18:47:25 +0500 Subject: [PATCH] Replace reflection to type assertion --- internal/backends/memory/backend.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/internal/backends/memory/backend.go b/internal/backends/memory/backend.go index 0990a56..e365a88 100644 --- a/internal/backends/memory/backend.go +++ b/internal/backends/memory/backend.go @@ -2,7 +2,6 @@ package memory import ( "fmt" - "reflect" "regexp" "sort" "strings" @@ -230,13 +229,12 @@ func extractEventsFromNodes(nodes []*sortedset.SortedSetNode) []events.Event { } func isEventRelatedToUser(event events.Event, user internal.User) bool { - // get RoomID field from event interface - // TODO: what if there are no RoomID field? - roomID := reflect.ValueOf(event).Elem().FieldByName("RoomID").Addr().Interface().(string) - - if internal.InArray(roomID, extractRoomIDsFromModel(user.JoinedRooms())) { - return true + if roomEvent, ok := event.(*events.RoomEvent); ok { + if internal.InArray(roomEvent.RoomID, extractRoomIDsFromModel(user.JoinedRooms())) { + return true + } } + return false }