mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Fix Issue Unsubscription (#9634)
This commit is contained in:
		@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user