feat(messages): sync saved message tags
This commit is contained in:
parent
a785ae7491
commit
6b3eba6c5d
42 changed files with 1581 additions and 551 deletions
|
|
@ -45,9 +45,6 @@ func (r *Router) enrichUpdateEventsWithPeerCache(ctx context.Context, viewerUser
|
|||
}
|
||||
}
|
||||
}
|
||||
if out[i].Type == domain.UpdateEventMessageReactions {
|
||||
out[i] = r.enrichMessageReactionEvent(ctx, viewerUserID, out[i])
|
||||
}
|
||||
if out[i].Type == domain.UpdateEventMessagePoll {
|
||||
out[i] = r.enrichMessagePollEvent(ctx, viewerUserID, out[i])
|
||||
}
|
||||
|
|
@ -115,36 +112,6 @@ type updateEventPeerRefs struct {
|
|||
channelIDs map[int64]struct{}
|
||||
}
|
||||
|
||||
func (r *Router) enrichMessageReactionEvent(ctx context.Context, viewerUserID int64, event domain.UpdateEvent) domain.UpdateEvent {
|
||||
if r.deps.Messages == nil || event.Message.ID <= 0 {
|
||||
return event
|
||||
}
|
||||
peer := event.Message.Peer
|
||||
if peer.Type == "" || peer.ID == 0 {
|
||||
peer = event.Peer
|
||||
}
|
||||
if peer.Type != domain.PeerTypeUser || peer.ID == 0 {
|
||||
return event
|
||||
}
|
||||
res, err := r.deps.Messages.GetMessageReactions(ctx, viewerUserID, domain.PrivateMessageReactionsRequest{
|
||||
OwnerUserID: viewerUserID,
|
||||
Peer: peer,
|
||||
IDs: []int{event.Message.ID},
|
||||
})
|
||||
if err != nil {
|
||||
return event
|
||||
}
|
||||
for _, msg := range res.Messages {
|
||||
if msg.OwnerUserID == viewerUserID && msg.ID == event.Message.ID {
|
||||
msg.Pts = event.Pts
|
||||
event.Message = msg
|
||||
event.Peer = msg.Peer
|
||||
return event
|
||||
}
|
||||
}
|
||||
return event
|
||||
}
|
||||
|
||||
// enrichMessagePollEvent 在 difference 重放时按 viewer 重载消息(media 含最新 poll 权威态与
|
||||
// viewer 门控),与 reaction 事件 enrich 同构。
|
||||
func (r *Router) enrichMessagePollEvent(ctx context.Context, viewerUserID int64, event domain.UpdateEvent) domain.UpdateEvent {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue