summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/team.go33
1 files changed, 31 insertions, 2 deletions
diff --git a/api/team.go b/api/team.go
index e73eb66e1..730eb1d3d 100644
--- a/api/team.go
+++ b/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)))
}
}