diff options
author | Till <2353100+S7evinK@users.noreply.github.com> | 2022-12-08 08:25:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-08 08:25:03 +0100 |
commit | c136a450d5196cf22a91419f493bb73c29481122 (patch) | |
tree | 8a3dc463cb652c0f0beada3eba0553f336d329f0 /syncapi/consumers | |
parent | 0351618ff4e7d569e14a165be59a1a7e9e979684 (diff) |
Fix newly joined users presence (#2854)
Fixes #2803
Also refactors the presence stream to not hit the database for every
user, instead queries all users at once now.
Diffstat (limited to 'syncapi/consumers')
-rw-r--r-- | syncapi/consumers/presence.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/syncapi/consumers/presence.go b/syncapi/consumers/presence.go index 145059c2..6e3150c2 100644 --- a/syncapi/consumers/presence.go +++ b/syncapi/consumers/presence.go @@ -78,7 +78,7 @@ func (s *PresenceConsumer) Start() error { // Normal NATS subscription, used by Request/Reply _, err := s.nats.Subscribe(s.requestTopic, func(msg *nats.Msg) { userID := msg.Header.Get(jetstream.UserID) - presence, err := s.db.GetPresence(context.Background(), userID) + presences, err := s.db.GetPresences(context.Background(), []string{userID}) m := &nats.Msg{ Header: nats.Header{}, } @@ -89,10 +89,12 @@ func (s *PresenceConsumer) Start() error { } return } - if presence == nil { - presence = &types.PresenceInternal{ - UserID: userID, - } + + presence := &types.PresenceInternal{ + UserID: userID, + } + if len(presences) > 0 { + presence = presences[0] } deviceRes := api.QueryDevicesResponse{} |