summaryrefslogtreecommitdiffstats
path: root/models/issue_milestone.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-08-12 14:43:08 +0200
committerGitHub <noreply@github.com>2021-08-12 14:43:08 +0200
commit2289580bb7ef8dfa4124c2b3bfb89897dbb35f46 (patch)
treee68aae604bb3d738b44156504a1415adaf042c68 /models/issue_milestone.go
parentca13e1d56c561f72cf8ad251fe61b1898abfec51 (diff)
downloadgitea-2289580bb7ef8dfa4124c2b3bfb89897dbb35f46.tar.gz
gitea-2289580bb7ef8dfa4124c2b3bfb89897dbb35f46.zip
[API] generalize list header (#16551)
* Add info about list endpoints to CONTRIBUTING.md * Let all list endpoints return X-Total-Count header * Add TODOs for GetCombinedCommitStatusByRef * Fix models/issue_stopwatch.go * Rrefactor models.ListDeployKeys * Introduce helper func and use them for SetLinkHeader related func
Diffstat (limited to 'models/issue_milestone.go')
-rw-r--r--models/issue_milestone.go24
1 files changed, 17 insertions, 7 deletions
diff --git a/models/issue_milestone.go b/models/issue_milestone.go
index 5e934cde0a..e6976a46c7 100644
--- a/models/issue_milestone.go
+++ b/models/issue_milestone.go
@@ -380,24 +380,33 @@ type GetMilestonesOption struct {
SortType string
}
-// GetMilestones returns milestones filtered by GetMilestonesOption's
-func GetMilestones(opts GetMilestonesOption) (MilestoneList, error) {
- sess := x.Where("repo_id = ?", opts.RepoID)
+func (opts GetMilestonesOption) toCond() builder.Cond {
+ cond := builder.NewCond()
+ if opts.RepoID != 0 {
+ cond = cond.And(builder.Eq{"repo_id": opts.RepoID})
+ }
switch opts.State {
case api.StateClosed:
- sess = sess.And("is_closed = ?", true)
+ cond = cond.And(builder.Eq{"is_closed": true})
case api.StateAll:
break
// api.StateOpen:
default:
- sess = sess.And("is_closed = ?", false)
+ cond = cond.And(builder.Eq{"is_closed": false})
}
if len(opts.Name) != 0 {
- sess = sess.And(builder.Like{"name", opts.Name})
+ cond = cond.And(builder.Like{"name", opts.Name})
}
+ return cond
+}
+
+// GetMilestones returns milestones filtered by GetMilestonesOption's
+func GetMilestones(opts GetMilestonesOption) (MilestoneList, int64, error) {
+ sess := x.Where(opts.toCond())
+
if opts.Page != 0 {
sess = opts.setSessionPagination(sess)
}
@@ -420,7 +429,8 @@ func GetMilestones(opts GetMilestonesOption) (MilestoneList, error) {
}
miles := make([]*Milestone, 0, opts.PageSize)
- return miles, sess.Find(&miles)
+ total, err := sess.FindAndCount(&miles)
+ return miles, total, err
}
// SearchMilestones search milestones