Browse Source

Fix Issue Unsubscription (#9634)

tags/v1.11.0-rc1
6543 zeripath 5 years ago
parent
commit
1614ac4e0d
2 changed files with 9 additions and 5 deletions
  1. +6
    -3
      models/issue_watch.go
  2. +3
    -2
      models/issue_watch_test.go

+ 6
- 3
models/issue_watch.go View 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
}


+ 3
- 2
models/issue_watch_test.go View 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)


Loading…
Cancel
Save