Skip to content

Commit 1063c9d

Browse files
committed
MilestoneList: add name as filter on API
1 parent 7ff39c4 commit 1063c9d

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

models/issue_milestone.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -335,33 +335,28 @@ type GetMilestonesOption struct {
335335
ListOptions
336336
RepoID int64
337337
State api.StateType
338+
Name string
338339
SortType string
339340
}
340341

341342
// GetMilestones returns milestones filtered by GetMilestonesOption's
342343
func GetMilestones(opts GetMilestonesOption) (MilestoneList, error) {
343-
sess := x.NewSession()
344-
defer sess.Close()
345-
if err := sess.Begin(); err != nil {
346-
return nil, err
347-
}
348-
349-
if opts.RepoID != 0 {
350-
sess = sess.Where("repo_id = ?", opts.RepoID)
351-
}
344+
sess := x.Where("repo_id = ?", opts.RepoID)
352345

353346
switch opts.State {
354347
case api.StateClosed:
355348
sess = sess.And("is_closed = ?", true)
356-
357349
case api.StateAll:
358350
break
359-
360351
// api.StateOpen:
361352
default:
362353
sess = sess.And("is_closed = ?", false)
363354
}
364355

356+
if len(opts.Name) != 0 {
357+
sess = sess.And(builder.Like{"name", opts.Name})
358+
}
359+
365360
if opts.Page != 0 {
366361
sess = opts.setSessionPagination(sess)
367362
}

routers/api/v1/repo/milestone.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ func ListMilestones(ctx *context.APIContext) {
3939
// in: query
4040
// description: Milestone state, Recognised values are open, closed and all. Defaults to "open"
4141
// type: string
42+
// - name: name
43+
// in: query
44+
// description: filter by milestone name
45+
// type: string
4246
// - name: page
4347
// in: query
4448
// description: page number of results to return (1-based)
@@ -55,6 +59,7 @@ func ListMilestones(ctx *context.APIContext) {
5559
ListOptions: utils.GetListOptions(ctx),
5660
RepoID: ctx.Repo.Repository.ID,
5761
State: api.StateType(ctx.Query("state")),
62+
Name: ctx.Query("name"),
5863
})
5964
if err != nil {
6065
ctx.Error(http.StatusInternalServerError, "GetMilestones", err)

templates/swagger/v1_json.tmpl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6164,6 +6164,12 @@
61646164
"name": "state",
61656165
"in": "query"
61666166
},
6167+
{
6168+
"type": "string",
6169+
"description": "filter by milestone name",
6170+
"name": "name",
6171+
"in": "query"
6172+
},
61676173
{
61686174
"type": "integer",
61696175
"description": "page number of results to return (1-based)",

0 commit comments

Comments
 (0)