summaryrefslogtreecommitdiffstats
path: root/models/notification.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-09-23 16:45:36 +0100
committerGitHub <noreply@github.com>2021-09-23 23:45:36 +0800
commit9302eba971611601c3ebf6024e22a11c63f4e151 (patch)
treea3e5583986161ef62e7affc694098279ecf2217d /models/notification.go
parentb22be7f594401d7bd81196750456ce52185bd391 (diff)
downloadgitea-9302eba971611601c3ebf6024e22a11c63f4e151.tar.gz
gitea-9302eba971611601c3ebf6024e22a11c63f4e151.zip
DBContext is just a Context (#17100)
* DBContext is just a Context This PR removes some of the specialness from the DBContext and makes it context This allows us to simplify the GetEngine code to wrap around any context in future and means that we can change our loadRepo(e Engine) functions to simply take contexts. Signed-off-by: Andrew Thornton <art27@cantab.net> * fix unit tests Signed-off-by: Andrew Thornton <art27@cantab.net> * another place that needs to set the initial context Signed-off-by: Andrew Thornton <art27@cantab.net> * avoid race Signed-off-by: Andrew Thornton <art27@cantab.net> * change attachment error Signed-off-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'models/notification.go')
-rw-r--r--models/notification.go36
1 files changed, 18 insertions, 18 deletions
diff --git a/models/notification.go b/models/notification.go
index 2f34def072..af24a6cf5a 100644
--- a/models/notification.go
+++ b/models/notification.go
@@ -127,17 +127,17 @@ func getNotifications(e db.Engine, options *FindNotificationOptions) (nl Notific
// GetNotifications returns all notifications that fit to the given options.
func GetNotifications(opts *FindNotificationOptions) (NotificationList, error) {
- return getNotifications(db.DefaultContext().Engine(), opts)
+ return getNotifications(db.GetEngine(db.DefaultContext), opts)
}
// CountNotifications count all notifications that fit to the given options and ignore pagination.
func CountNotifications(opts *FindNotificationOptions) (int64, error) {
- return db.DefaultContext().Engine().Where(opts.ToCond()).Count(&Notification{})
+ return db.GetEngine(db.DefaultContext).Where(opts.ToCond()).Count(&Notification{})
}
// CreateRepoTransferNotification creates notification for the user a repository was transferred to
func CreateRepoTransferNotification(doer, newOwner *User, repo *Repository) error {
- sess := db.DefaultContext().NewSession()
+ sess := db.NewSession(db.DefaultContext)
defer sess.Close()
if err := sess.Begin(); err != nil {
return err
@@ -179,7 +179,7 @@ func CreateRepoTransferNotification(doer, newOwner *User, repo *Repository) erro
// for each watcher, or updates it if already exists
// receiverID > 0 just send to reciver, else send to all watcher
func CreateOrUpdateIssueNotifications(issueID, commentID, notificationAuthorID, receiverID int64) error {
- sess := db.DefaultContext().NewSession()
+ sess := db.NewSession(db.DefaultContext)
defer sess.Close()
if err := sess.Begin(); err != nil {
return err
@@ -352,7 +352,7 @@ func getIssueNotification(e db.Engine, userID, issueID int64) (*Notification, er
// NotificationsForUser returns notifications for a given user and status
func NotificationsForUser(user *User, statuses []NotificationStatus, page, perPage int) (NotificationList, error) {
- return notificationsForUser(db.DefaultContext().Engine(), user, statuses, page, perPage)
+ return notificationsForUser(db.GetEngine(db.DefaultContext), user, statuses, page, perPage)
}
func notificationsForUser(e db.Engine, user *User, statuses []NotificationStatus, page, perPage int) (notifications []*Notification, err error) {
@@ -375,7 +375,7 @@ func notificationsForUser(e db.Engine, user *User, statuses []NotificationStatus
// CountUnread count unread notifications for a user
func CountUnread(user *User) int64 {
- return countUnread(db.DefaultContext().Engine(), user.ID)
+ return countUnread(db.GetEngine(db.DefaultContext), user.ID)
}
func countUnread(e db.Engine, userID int64) int64 {
@@ -389,7 +389,7 @@ func countUnread(e db.Engine, userID int64) int64 {
// LoadAttributes load Repo Issue User and Comment if not loaded
func (n *Notification) LoadAttributes() (err error) {
- return n.loadAttributes(db.DefaultContext().Engine())
+ return n.loadAttributes(db.GetEngine(db.DefaultContext))
}
func (n *Notification) loadAttributes(e db.Engine) (err error) {
@@ -451,12 +451,12 @@ func (n *Notification) loadUser(e db.Engine) (err error) {
// GetRepo returns the repo of the notification
func (n *Notification) GetRepo() (*Repository, error) {
- return n.Repository, n.loadRepo(db.DefaultContext().Engine())
+ return n.Repository, n.loadRepo(db.GetEngine(db.DefaultContext))
}
// GetIssue returns the issue of the notification
func (n *Notification) GetIssue() (*Issue, error) {
- return n.Issue, n.loadIssue(db.DefaultContext().Engine())
+ return n.Issue, n.loadIssue(db.GetEngine(db.DefaultContext))
}
// HTMLURL formats a URL-string to the notification
@@ -521,7 +521,7 @@ func (nl NotificationList) LoadRepos() (RepositoryList, []int, error) {
if left < limit {
limit = left
}
- rows, err := db.DefaultContext().Engine().
+ rows, err := db.GetEngine(db.DefaultContext).
In("id", repoIDs[:limit]).
Rows(new(Repository))
if err != nil {
@@ -597,7 +597,7 @@ func (nl NotificationList) LoadIssues() ([]int, error) {
if left < limit {
limit = left
}
- rows, err := db.DefaultContext().Engine().
+ rows, err := db.GetEngine(db.DefaultContext).
In("id", issueIDs[:limit]).
Rows(new(Issue))
if err != nil {
@@ -683,7 +683,7 @@ func (nl NotificationList) LoadComments() ([]int, error) {
if left < limit {
limit = left
}
- rows, err := db.DefaultContext().Engine().
+ rows, err := db.GetEngine(db.DefaultContext).
In("id", commentIDs[:limit]).
Rows(new(Comment))
if err != nil {
@@ -723,7 +723,7 @@ func (nl NotificationList) LoadComments() ([]int, error) {
// GetNotificationCount returns the notification count for user
func GetNotificationCount(user *User, status NotificationStatus) (int64, error) {
- return getNotificationCount(db.DefaultContext().Engine(), user, status)
+ return getNotificationCount(db.GetEngine(db.DefaultContext), user, status)
}
func getNotificationCount(e db.Engine, user *User, status NotificationStatus) (count int64, err error) {
@@ -746,7 +746,7 @@ func GetUIDsAndNotificationCounts(since, until timeutil.TimeStamp) ([]UserIDCoun
`WHERE user_id IN (SELECT user_id FROM notification WHERE updated_unix >= ? AND ` +
`updated_unix < ?) AND status = ? GROUP BY user_id`
var res []UserIDCount
- return res, db.DefaultContext().Engine().SQL(sql, since, until, NotificationStatusUnread).Find(&res)
+ return res, db.GetEngine(db.DefaultContext).SQL(sql, since, until, NotificationStatusUnread).Find(&res)
}
func setIssueNotificationStatusReadIfUnread(e db.Engine, userID, issueID int64) error {
@@ -778,7 +778,7 @@ func setRepoNotificationStatusReadIfUnread(e db.Engine, userID, repoID int64) er
// SetNotificationStatus change the notification status
func SetNotificationStatus(notificationID int64, user *User, status NotificationStatus) (*Notification, error) {
- notification, err := getNotificationByID(db.DefaultContext().Engine(), notificationID)
+ notification, err := getNotificationByID(db.GetEngine(db.DefaultContext), notificationID)
if err != nil {
return notification, err
}
@@ -789,13 +789,13 @@ func SetNotificationStatus(notificationID int64, user *User, status Notification
notification.Status = status
- _, err = db.DefaultContext().Engine().ID(notificationID).Update(notification)
+ _, err = db.GetEngine(db.DefaultContext).ID(notificationID).Update(notification)
return notification, err
}
// GetNotificationByID return notification by ID
func GetNotificationByID(notificationID int64) (*Notification, error) {
- return getNotificationByID(db.DefaultContext().Engine(), notificationID)
+ return getNotificationByID(db.GetEngine(db.DefaultContext), notificationID)
}
func getNotificationByID(e db.Engine, notificationID int64) (*Notification, error) {
@@ -817,7 +817,7 @@ func getNotificationByID(e db.Engine, notificationID int64) (*Notification, erro
// UpdateNotificationStatuses updates the statuses of all of a user's notifications that are of the currentStatus type to the desiredStatus
func UpdateNotificationStatuses(user *User, currentStatus, desiredStatus NotificationStatus) error {
n := &Notification{Status: desiredStatus, UpdatedBy: user.ID}
- _, err := db.DefaultContext().Engine().
+ _, err := db.GetEngine(db.DefaultContext).
Where("user_id = ? AND status = ?", user.ID, currentStatus).
Cols("status", "updated_by", "updated_unix").
Update(n)