mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
[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
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user