Fix teams unread count (#4848)
* Fix teams unread * Moving logic out of the store * fix unit test
Этот коммит содержится в:
33
api/team.go
33
api/team.go
@@ -751,8 +751,37 @@ func getMyTeamsUnread(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
c.Err = result.Err
|
||||
return
|
||||
} else {
|
||||
data := result.Data.([]*model.TeamUnread)
|
||||
w.Write([]byte(model.TeamsUnreadToJson(data)))
|
||||
data := result.Data.([]*model.ChannelUnread)
|
||||
var members []*model.TeamUnread
|
||||
membersMap := make(map[string]*model.TeamUnread)
|
||||
|
||||
unreads := func(cu *model.ChannelUnread, tu *model.TeamUnread) *model.TeamUnread {
|
||||
tu.MentionCount += cu.MentionCount
|
||||
|
||||
if cu.NotifyProps["mark_unread"] != model.CHANNEL_MARK_UNREAD_MENTION {
|
||||
tu.MsgCount += (cu.TotalMsgCount - cu.MsgCount)
|
||||
}
|
||||
|
||||
return tu
|
||||
}
|
||||
|
||||
for i := range data {
|
||||
id := data[i].TeamId
|
||||
if mu, ok := membersMap[id]; ok {
|
||||
membersMap[id] = unreads(data[i], mu)
|
||||
} else {
|
||||
membersMap[id] = unreads(data[i], &model.TeamUnread{
|
||||
MsgCount: 0,
|
||||
MentionCount: 0,
|
||||
TeamId: id,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
for _, val := range membersMap {
|
||||
members = append(members, val)
|
||||
}
|
||||
w.Write([]byte(model.TeamsUnreadToJson(members)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user