]> source.dussan.org Git - gitea.git/commitdiff
Fix Issue Unsubscription (#9634)
author6543 <6543@obermui.de>
Tue, 7 Jan 2020 15:41:35 +0000 (16:41 +0100)
committerzeripath <art27@cantab.net>
Tue, 7 Jan 2020 15:41:35 +0000 (15:41 +0000)
models/issue_watch.go
models/issue_watch_test.go

index e42e371a1fae5905bad25572675dba59ec7efc4e..6144d6cafe1f29c96663bc58bf10bddaaecfb839 100644 (file)
@@ -4,7 +4,9 @@
 
 package models
 
-import "code.gitea.io/gitea/modules/timeutil"
+import (
+       "code.gitea.io/gitea/modules/timeutil"
+)
 
 // IssueWatch is connection request for receiving issue notification.
 type IssueWatch struct {
@@ -46,17 +48,18 @@ func CreateOrUpdateIssueWatch(userID, issueID int64, isWatching bool) error {
        return nil
 }
 
-// GetIssueWatch returns an issue watch by user and issue
+// GetIssueWatch returns all IssueWatch objects from db by user and issue
+// the current Web-UI need iw object for watchers AND explicit non-watchers
 func GetIssueWatch(userID, issueID int64) (iw *IssueWatch, exists bool, err error) {
        return getIssueWatch(x, userID, issueID)
 }
 
+// Return watcher AND explicit non-watcher if entry in db exist
 func getIssueWatch(e Engine, userID, issueID int64) (iw *IssueWatch, exists bool, err error) {
        iw = new(IssueWatch)
        exists, err = e.
                Where("user_id = ?", userID).
                And("issue_id = ?", issueID).
-               And("is_watching = ?", true).
                Get(iw)
        return
 }
index 1d0473426e8df057391f2b71a11b09937fc80372..90140591bfac2b6ef030a8b092a3fd68e30f0dda 100644 (file)
@@ -29,9 +29,10 @@ func TestGetIssueWatch(t *testing.T) {
        assert.True(t, exists)
        assert.NoError(t, err)
 
-       _, exists, err = GetIssueWatch(2, 2)
-       assert.False(t, exists)
+       iw, exists, err := GetIssueWatch(2, 2)
+       assert.True(t, exists)
        assert.NoError(t, err)
+       assert.EqualValues(t, false, iw.IsWatching)
 
        _, exists, err = GetIssueWatch(3, 1)
        assert.False(t, exists)