diff options
author | 6543 <6543@obermui.de> | 2020-01-14 16:37:19 +0100 |
---|---|---|
committer | Antoine GIRARD <sapk@users.noreply.github.com> | 2020-01-14 16:37:19 +0100 |
commit | 44de66bf50d1ab9a5acc298063cd942768092a19 (patch) | |
tree | fda1b76b954d720dfdfefded22883a51ab52e45e /models/notification.go | |
parent | ce274d652f2be03364bc0d0a8cb1b4d1996b16c7 (diff) | |
download | gitea-44de66bf50d1ab9a5acc298063cd942768092a19.tar.gz gitea-44de66bf50d1ab9a5acc298063cd942768092a19.zip |
[API] add endpoint to check notifications [Extend #9488] (#9595)
* introduce GET /notifications/new
* add TEST
* use Sprintf instead of path.Join
* Error more verbose
* return number of notifications if unreaded exist
* 200 http status for available notifications
Diffstat (limited to 'models/notification.go')
-rw-r--r-- | models/notification.go | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/models/notification.go b/models/notification.go index 8e9bca0dc6..403c53243d 100644 --- a/models/notification.go +++ b/models/notification.go @@ -8,6 +8,7 @@ import ( "fmt" "path" + "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" api "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/timeutil" @@ -294,6 +295,20 @@ func notificationsForUser(e Engine, user *User, statuses []NotificationStatus, p return } +// CountUnread count unread notifications for a user +func CountUnread(user *User) int64 { + return countUnread(x, user.ID) +} + +func countUnread(e Engine, userID int64) int64 { + exist, err := e.Where("user_id = ?", userID).And("status = ?", NotificationStatusUnread).Count(new(Notification)) + if err != nil { + log.Error("countUnread", err) + return 0 + } + return exist +} + // APIFormat converts a Notification to api.NotificationThread func (n *Notification) APIFormat() *api.NotificationThread { result := &api.NotificationThread{ @@ -388,7 +403,7 @@ func (n *Notification) loadComment(e Engine) (err error) { if n.Comment == nil && n.CommentID > 0 { n.Comment, err = GetCommentByID(n.CommentID) if err != nil { - return fmt.Errorf("GetCommentByID [%d]: %v", n.CommentID, err) + return fmt.Errorf("GetCommentByID [%d] for issue ID [%d]: %v", n.CommentID, n.IssueID, err) } } return nil |