summaryrefslogtreecommitdiffstats
path: root/routers/api/v1/repo/issue.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/api/v1/repo/issue.go')
-rw-r--r--routers/api/v1/repo/issue.go20
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))