fix(rpc): sync preserve complete username projections
This commit is contained in:
parent
464d4edb4a
commit
ee74d941bb
10 changed files with 411 additions and 22 deletions
|
|
@ -36,11 +36,15 @@ func (r *Router) BuildOutboxUpdates(ctx context.Context, requests []OutboxUpdate
|
|||
for i, item := range items {
|
||||
update := tgUpdateForOutboxEventForViewer(events[i], viewerUserID)
|
||||
if peers := storyUpdateEventPeers(events[i]); len(peers) > 0 {
|
||||
update = r.withStoryUpdatePeerObjects(ctx, viewerUserID, update, peers...)
|
||||
update = r.withStoryUpdatePeerObjectsForOutbox(ctx, viewerUserID, update, peers...)
|
||||
}
|
||||
out[item.index] = update
|
||||
}
|
||||
}
|
||||
// Username rows are viewer-independent. Project the union once after every
|
||||
// viewer-specific update has been built so one outbox claim never turns into
|
||||
// a registry query per event/session.
|
||||
r.applyUsernamesToUpdatesBatch(ctx, out)
|
||||
return out
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue