summaryrefslogtreecommitdiffstats
path: root/app/team.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/team.go')
-rw-r--r--app/team.go30
1 files changed, 27 insertions, 3 deletions
diff --git a/app/team.go b/app/team.go
index 60a2f4220..6bc4d258e 100644
--- a/app/team.go
+++ b/app/team.go
@@ -391,6 +391,30 @@ func GetTeamMembersByIds(teamId string, userIds []string) ([]*model.TeamMember,
}
}
+func GetTeamUnread(teamId, userId string) (*model.TeamUnread, *model.AppError) {
+ result := <-Srv.Store.Team().GetChannelUnreadsForTeam(teamId, userId)
+ if result.Err != nil {
+ return nil, result.Err
+ }
+
+ channelUnreads := result.Data.([]*model.ChannelUnread)
+ var teamUnread = &model.TeamUnread{
+ MsgCount: 0,
+ MentionCount: 0,
+ TeamId: teamId,
+ }
+
+ for _, cu := range channelUnreads {
+ teamUnread.MentionCount += cu.MentionCount
+
+ if cu.NotifyProps["mark_unread"] != model.CHANNEL_MARK_UNREAD_MENTION {
+ teamUnread.MsgCount += cu.MsgCount
+ }
+ }
+
+ return teamUnread, nil
+}
+
func RemoveUserFromTeam(teamId string, userId string) *model.AppError {
tchan := Srv.Store.Team().Get(teamId)
uchan := Srv.Store.User().Get(userId)
@@ -511,8 +535,8 @@ func FindTeamByName(name string) bool {
}
}
-func GetTeamsUnreadForUser(teamId string, userId string) ([]*model.TeamUnread, *model.AppError) {
- if result := <-Srv.Store.Team().GetTeamsUnreadForUser(teamId, userId); result.Err != nil {
+func GetTeamsUnreadForUser(excludeTeamId string, userId string) ([]*model.TeamUnread, *model.AppError) {
+ if result := <-Srv.Store.Team().GetChannelUnreadsForAllTeams(excludeTeamId, userId); result.Err != nil {
return nil, result.Err
} else {
data := result.Data.([]*model.ChannelUnread)
@@ -523,7 +547,7 @@ func GetTeamsUnreadForUser(teamId string, userId string) ([]*model.TeamUnread, *
tu.MentionCount += cu.MentionCount
if cu.NotifyProps["mark_unread"] != model.CHANNEL_MARK_UNREAD_MENTION {
- tu.MsgCount += (cu.TotalMsgCount - cu.MsgCount)
+ tu.MsgCount += cu.MsgCount
}
return tu