summaryrefslogtreecommitdiffstats
path: root/models/notification.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-01-14 16:37:19 +0100
committerAntoine GIRARD <sapk@users.noreply.github.com>2020-01-14 16:37:19 +0100
commit44de66bf50d1ab9a5acc298063cd942768092a19 (patch)
treefda1b76b954d720dfdfefded22883a51ab52e45e /models/notification.go
parentce274d652f2be03364bc0d0a8cb1b4d1996b16c7 (diff)
downloadgitea-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.go17
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