mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-18 03:17:56 +01: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:
parent
8f2e2878e5
commit
3a67997f98
1 changed files with 53 additions and 52 deletions
|
@ -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 {
|
||||||
|
@ -167,19 +181,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.
|
||||||
func GetUserIssueStats(filterMode int, opts IssuesOptions) (*IssueStats, error) {
|
func GetUserIssueStats(filterMode int, opts IssuesOptions) (*IssueStats, error) {
|
||||||
if opts.User == nil {
|
if opts.User == nil {
|
||||||
|
|
Loading…
Reference in a new issue