aboutsummaryrefslogtreecommitdiff
path: root/syncapi/consumers
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2022-12-08 08:25:03 +0100
committerGitHub <noreply@github.com>2022-12-08 08:25:03 +0100
commitc136a450d5196cf22a91419f493bb73c29481122 (patch)
tree8a3dc463cb652c0f0beada3eba0553f336d329f0 /syncapi/consumers
parent0351618ff4e7d569e14a165be59a1a7e9e979684 (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.go12
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{}