mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Use conditions but not repo ids as query condition (#16839)
* Use conditions but not repo ids as query condition * Improve the performance of pulls/issue * Remove duplicated code * fix lint * Fix bug * Fix stats * More fixes * Fix build * Fix lint * Fix test * Fix build * Adjust the logic * Merge * Fix conflicts * improve the performance * Add comments for the query conditions functions * Some improvements
This commit is contained in:
		@@ -206,11 +206,26 @@ func TestGetUserIssueStats(t *testing.T) {
 | 
			
		||||
				FilterMode: FilterModeAll,
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 0,
 | 
			
		||||
				AssignCount:           1,
 | 
			
		||||
				CreateCount:           1,
 | 
			
		||||
				OpenCount:             0,
 | 
			
		||||
				ClosedCount:           0,
 | 
			
		||||
				YourRepositoriesCount: 1, // 6
 | 
			
		||||
				AssignCount:           1, // 6
 | 
			
		||||
				CreateCount:           1, // 6
 | 
			
		||||
				OpenCount:             1, // 6
 | 
			
		||||
				ClosedCount:           1, // 1
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			UserIssueStatsOptions{
 | 
			
		||||
				UserID:     1,
 | 
			
		||||
				RepoIDs:    []int64{1},
 | 
			
		||||
				FilterMode: FilterModeAll,
 | 
			
		||||
				IsClosed:   true,
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 1, // 6
 | 
			
		||||
				AssignCount:           0,
 | 
			
		||||
				CreateCount:           0,
 | 
			
		||||
				OpenCount:             1, // 6
 | 
			
		||||
				ClosedCount:           1, // 1
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
@@ -219,10 +234,10 @@ func TestGetUserIssueStats(t *testing.T) {
 | 
			
		||||
				FilterMode: FilterModeAssign,
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 0,
 | 
			
		||||
				AssignCount:           2,
 | 
			
		||||
				CreateCount:           2,
 | 
			
		||||
				OpenCount:             2,
 | 
			
		||||
				YourRepositoriesCount: 1, // 6
 | 
			
		||||
				AssignCount:           1, // 6
 | 
			
		||||
				CreateCount:           1, // 6
 | 
			
		||||
				OpenCount:             1, // 6
 | 
			
		||||
				ClosedCount:           0,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
@@ -232,37 +247,23 @@ func TestGetUserIssueStats(t *testing.T) {
 | 
			
		||||
				FilterMode: FilterModeCreate,
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 0,
 | 
			
		||||
				AssignCount:           2,
 | 
			
		||||
				CreateCount:           2,
 | 
			
		||||
				OpenCount:             2,
 | 
			
		||||
				YourRepositoriesCount: 1, // 6
 | 
			
		||||
				AssignCount:           1, // 6
 | 
			
		||||
				CreateCount:           1, // 6
 | 
			
		||||
				OpenCount:             1, // 6
 | 
			
		||||
				ClosedCount:           0,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			UserIssueStatsOptions{
 | 
			
		||||
				UserID:      2,
 | 
			
		||||
				UserRepoIDs: []int64{1, 2},
 | 
			
		||||
				FilterMode:  FilterModeAll,
 | 
			
		||||
				IsClosed:    true,
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 2,
 | 
			
		||||
				AssignCount:           0,
 | 
			
		||||
				CreateCount:           2,
 | 
			
		||||
				OpenCount:             2,
 | 
			
		||||
				ClosedCount:           2,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			UserIssueStatsOptions{
 | 
			
		||||
				UserID:     1,
 | 
			
		||||
				FilterMode: FilterModeMention,
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 0,
 | 
			
		||||
				AssignCount:           2,
 | 
			
		||||
				CreateCount:           2,
 | 
			
		||||
				YourRepositoriesCount: 1, // 6
 | 
			
		||||
				AssignCount:           1, // 6
 | 
			
		||||
				CreateCount:           1, // 6
 | 
			
		||||
				MentionCount:          0,
 | 
			
		||||
				OpenCount:             0,
 | 
			
		||||
				ClosedCount:           0,
 | 
			
		||||
			},
 | 
			
		||||
@@ -274,19 +275,21 @@ func TestGetUserIssueStats(t *testing.T) {
 | 
			
		||||
				IssueIDs:   []int64{1},
 | 
			
		||||
			},
 | 
			
		||||
			IssueStats{
 | 
			
		||||
				YourRepositoriesCount: 0,
 | 
			
		||||
				AssignCount:           1,
 | 
			
		||||
				CreateCount:           1,
 | 
			
		||||
				OpenCount:             1,
 | 
			
		||||
				YourRepositoriesCount: 1, // 1
 | 
			
		||||
				AssignCount:           1, // 1
 | 
			
		||||
				CreateCount:           1, // 1
 | 
			
		||||
				OpenCount:             1, // 1
 | 
			
		||||
				ClosedCount:           0,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	} {
 | 
			
		||||
		stats, err := GetUserIssueStats(test.Opts)
 | 
			
		||||
		if !assert.NoError(t, err) {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		assert.Equal(t, test.ExpectedIssueStats, *stats)
 | 
			
		||||
		t.Run(fmt.Sprintf("%#v", test.Opts), func(t *testing.T) {
 | 
			
		||||
			stats, err := GetUserIssueStats(test.Opts)
 | 
			
		||||
			if !assert.NoError(t, err) {
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			assert.Equal(t, test.ExpectedIssueStats, *stats)
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user