mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	[Refactor] getIssueStatsChunk to move inner function into own one (#26671)
move inner **countSession** of **getIssueStatsChunk** into it's own function for reuse --- *Sponsored by Kithara Software GmbH*
This commit is contained in:
		@@ -116,9 +116,23 @@ func GetIssueStats(opts *IssuesOptions) (*IssueStats, error) {
 | 
				
			|||||||
func getIssueStatsChunk(opts *IssuesOptions, issueIDs []int64) (*IssueStats, error) {
 | 
					func getIssueStatsChunk(opts *IssuesOptions, issueIDs []int64) (*IssueStats, error) {
 | 
				
			||||||
	stats := &IssueStats{}
 | 
						stats := &IssueStats{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	countSession := func(opts *IssuesOptions, issueIDs []int64) *xorm.Session {
 | 
					 | 
				
			||||||
	sess := db.GetEngine(db.DefaultContext).
 | 
						sess := db.GetEngine(db.DefaultContext).
 | 
				
			||||||
		Join("INNER", "repository", "`issue`.repo_id = `repository`.id")
 | 
							Join("INNER", "repository", "`issue`.repo_id = `repository`.id")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var err error
 | 
				
			||||||
 | 
						stats.OpenCount, err = applyIssuesOptions(sess, opts, issueIDs).
 | 
				
			||||||
 | 
							And("issue.is_closed = ?", false).
 | 
				
			||||||
 | 
							Count(new(Issue))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return stats, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						stats.ClosedCount, err = applyIssuesOptions(sess, opts, issueIDs).
 | 
				
			||||||
 | 
							And("issue.is_closed = ?", true).
 | 
				
			||||||
 | 
							Count(new(Issue))
 | 
				
			||||||
 | 
						return stats, err
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func applyIssuesOptions(sess *xorm.Session, opts *IssuesOptions, issueIDs []int64) *xorm.Session {
 | 
				
			||||||
	if len(opts.RepoIDs) > 1 {
 | 
						if len(opts.RepoIDs) > 1 {
 | 
				
			||||||
		sess.In("issue.repo_id", opts.RepoIDs)
 | 
							sess.In("issue.repo_id", opts.RepoIDs)
 | 
				
			||||||
	} else if len(opts.RepoIDs) == 1 {
 | 
						} else if len(opts.RepoIDs) == 1 {
 | 
				
			||||||
@@ -165,19 +179,6 @@ func getIssueStatsChunk(opts *IssuesOptions, issueIDs []int64) (*IssueStats, err
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return sess
 | 
						return sess
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var err error
 | 
					 | 
				
			||||||
	stats.OpenCount, err = countSession(opts, issueIDs).
 | 
					 | 
				
			||||||
		And("issue.is_closed = ?", false).
 | 
					 | 
				
			||||||
		Count(new(Issue))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return stats, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	stats.ClosedCount, err = countSession(opts, issueIDs).
 | 
					 | 
				
			||||||
		And("issue.is_closed = ?", true).
 | 
					 | 
				
			||||||
		Count(new(Issue))
 | 
					 | 
				
			||||||
	return stats, err
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetUserIssueStats returns issue statistic information for dashboard by given conditions.
 | 
					// GetUserIssueStats returns issue statistic information for dashboard by given conditions.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user