* Fix teams unread

* Moving logic out of the store

* fix unit test
Этот коммит содержится в:
enahum
2016-12-21 16:20:11 -03:00
коммит произвёл Corey Hulen
родитель dce4205699
Коммит 139cb52c99
4 изменённых файлов: 65 добавлений и 19 удалений

Просмотреть файл

@@ -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)))
}
}