]> source.dussan.org Git - gitea.git/commitdiff
use xorm session
author6543 <6543@obermui.de>
Fri, 15 Nov 2019 13:01:23 +0000 (14:01 +0100)
committer6543 <6543@obermui.de>
Fri, 15 Nov 2019 13:01:23 +0000 (14:01 +0100)
models/issue_watch.go

index e131483a8c235e88c6a6ebc96f921c42e9c87aeb..00822f55c765e90c7c1e11e4aad3c193cf99cee0 100644 (file)
@@ -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
                }
        }