diff options
Diffstat (limited to 'routers/api/v1/repo/issue.go')
-rw-r--r-- | routers/api/v1/repo/issue.go | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go index 462aca88ad..8501334ade 100644 --- a/routers/api/v1/repo/issue.go +++ b/routers/api/v1/repo/issue.go @@ -17,14 +17,26 @@ import ( // ListIssues list the issues of a repository func ListIssues(ctx *context.APIContext) { - issues, err := models.Issues(&models.IssuesOptions{ - RepoID: ctx.Repo.Repository.ID, - Page: ctx.QueryInt("page"), - }) + issueOpts := models.IssuesOptions{ + RepoID: ctx.Repo.Repository.ID, + Page: ctx.QueryInt("page"), + IsClosed: ctx.Query("state") == "closed", + } + + issues, err := models.Issues(&issueOpts) if err != nil { ctx.Error(500, "Issues", err) return } + if ctx.Query("state") == "all" { + issueOpts.IsClosed = !issueOpts.IsClosed + temp_issues, err := models.Issues(&issueOpts) + if err != nil { + ctx.Error(500, "Issues", err) + return + } + issues = append(issues, temp_issues...) + } // FIXME: use IssueList to improve performance. apiIssues := make([]*api.Issue, len(issues)) |