From c1de540147199f2f1a8dd0d008f54af3603e2229 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 15 Nov 2019 14:01:23 +0100 Subject: [PATCH] use xorm session --- models/issue_watch.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/models/issue_watch.go b/models/issue_watch.go index e131483a8c..00822f55c7 100644 --- a/models/issue_watch.go +++ b/models/issue_watch.go @@ -21,7 +21,21 @@ type IssueWatchList []*IssueWatch // CreateOrUpdateIssueWatch set watching for a user and issue func CreateOrUpdateIssueWatch(userID, issueID int64, isWatching bool) error { - iw, exists, err := getIssueWatch(x, userID, issueID) + sess := x.NewSession() + defer sess.Close() + + if err := sess.Begin(); err != nil { + return err + } + if err := createOrUpdateIssueWatch(sess, userID, issueID, isWatching); err != nil { + return err + } + + return sess.Commit() +} + +func createOrUpdateIssueWatch(e Engine, userID, issueID int64, isWatching bool) error { + iw, exists, err := getIssueWatch(e, userID, issueID) if err != nil { return err } @@ -33,13 +47,13 @@ func CreateOrUpdateIssueWatch(userID, issueID int64, isWatching bool) error { IsWatching: isWatching, } - if _, err := x.Insert(iw); err != nil { + if _, err := e.Insert(iw); err != nil { return err } } else { iw.IsWatching = isWatching - if _, err := x.ID(iw.ID).Cols("is_watching", "updated_unix").Update(iw); err != nil { + if _, err := e.ID(iw.ID).Cols("is_watching", "updated_unix").Update(iw); err != nil { return err } }