feat: sync monoforum and collectible emoji status
Sync telesrv bd15657 (feat(account): implement collectible emoji status). Skipped telesrv docs changes per public sync rules.
This commit is contained in:
parent
edb7057757
commit
0c99ae0a9d
91 changed files with 4061 additions and 693 deletions
|
|
@ -377,6 +377,20 @@ WHERE c.id = ANY($2::bigint[]) AND NOT c.deleted`, viewerUserID, ids)
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
parentIDs := make([]int64, 0, len(channels))
|
||||
for _, channel := range channels {
|
||||
if channel.Monoforum && channel.LinkedMonoforumID != 0 {
|
||||
parentIDs = append(parentIDs, channel.LinkedMonoforumID)
|
||||
}
|
||||
}
|
||||
parents, err := listChannelsByIDs(ctx, s.db, parentIDs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
parentsByID := make(map[int64]domain.Channel, len(parents))
|
||||
for _, parent := range parents {
|
||||
parentsByID[parent.ID] = parent
|
||||
}
|
||||
linkedGuests, err := s.listLinkedDiscussionGuests(ctx, s.db, viewerUserID, remaining)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -402,6 +416,17 @@ WHERE c.id = ANY($2::bigint[]) AND NOT c.deleted`, viewerUserID, ids)
|
|||
}
|
||||
continue
|
||||
}
|
||||
if channel.Monoforum && channel.LinkedMonoforumID != 0 {
|
||||
if parent, ok := parentsByID[channel.LinkedMonoforumID]; ok && parent.BroadcastMessagesAllowed && parent.LinkedMonoforumID == channel.ID {
|
||||
member := syntheticMonoforumUserMember(channel, viewerUserID)
|
||||
views[channel.ID] = domain.ChannelView{
|
||||
Channel: channel,
|
||||
Self: member,
|
||||
Dialog: previewChannelDialog(viewerUserID, channel, member),
|
||||
}
|
||||
continue
|
||||
}
|
||||
}
|
||||
if !publicPreviewableChannel(channel) {
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue