diff options
Diffstat (limited to 'routers/api/v1/repo/milestone.go')
-rw-r--r-- | routers/api/v1/repo/milestone.go | 89 |
1 files changed, 18 insertions, 71 deletions
diff --git a/routers/api/v1/repo/milestone.go b/routers/api/v1/repo/milestone.go index 416d9da90f..652ccbb5c6 100644 --- a/routers/api/v1/repo/milestone.go +++ b/routers/api/v1/repo/milestone.go @@ -5,47 +5,42 @@ package repo import ( + "time" + api "github.com/gogits/go-gogs-client" "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/context" - "github.com/gogits/gogs/routers/api/v1/convert" - "time" ) func ListMilestones(ctx *context.APIContext) { - milestones, err := models.GetAllRepoMilestones(ctx.Repo.Repository.ID) + milestones, err := models.GetMilestonesByRepoID(ctx.Repo.Repository.ID) if err != nil { - ctx.Error(500, "GetAllRepoMilestones", err) + ctx.Error(500, "GetMilestonesByRepoID", err) return } apiMilestones := make([]*api.Milestone, len(milestones)) for i := range milestones { - apiMilestones[i] = convert.ToMilestone(milestones[i]) + apiMilestones[i] = milestones[i].APIFormat() } ctx.JSON(200, &apiMilestones) } func GetMilestone(ctx *context.APIContext) { - milestone, err := models.GetRepoMilestoneByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")) + milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")) if err != nil { if models.IsErrMilestoneNotExist(err) { ctx.Status(404) } else { - ctx.Error(500, "GetRepoMilestoneByID", err) + ctx.Error(500, "GetMilestoneByRepoID", err) } return } - ctx.JSON(200, convert.ToMilestone(milestone)) + ctx.JSON(200, milestone.APIFormat()) } func CreateMilestone(ctx *context.APIContext, form api.CreateMilestoneOption) { - if !ctx.Repo.IsWriter() { - ctx.Status(403) - return - } - if form.Deadline == nil { defaultDeadline, _ := time.ParseInLocation("2006-01-02", "9999-12-31", time.Local) form.Deadline = &defaultDeadline @@ -62,21 +57,16 @@ func CreateMilestone(ctx *context.APIContext, form api.CreateMilestoneOption) { ctx.Error(500, "NewMilestone", err) return } - ctx.JSON(201, convert.ToMilestone(milestone)) + ctx.JSON(201, milestone.APIFormat()) } func EditMilestone(ctx *context.APIContext, form api.EditMilestoneOption) { - if !ctx.Repo.IsWriter() { - ctx.Status(403) - return - } - - milestone, err := models.GetRepoMilestoneByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")) + milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")) if err != nil { if models.IsErrMilestoneNotExist(err) { ctx.Status(404) } else { - ctx.Error(500, "GetRepoMilestoneByID", err) + ctx.Error(500, "GetMilestoneByRepoID", err) } return } @@ -84,67 +74,24 @@ func EditMilestone(ctx *context.APIContext, form api.EditMilestoneOption) { if len(form.Title) > 0 { milestone.Name = form.Title } - if len(form.Description) > 0 { - milestone.Content = form.Description + if form.Description != nil { + milestone.Content = *form.Description } - if !form.Deadline.IsZero() { + if form.Deadline != nil && !form.Deadline.IsZero() { milestone.Deadline = *form.Deadline } + if err := models.UpdateMilestone(milestone); err != nil { ctx.Handle(500, "UpdateMilestone", err) return } - ctx.JSON(200, convert.ToMilestone(milestone)) + ctx.JSON(200, milestone.APIFormat()) } func DeleteMilestone(ctx *context.APIContext) { - if !ctx.Repo.IsWriter() { - ctx.Status(403) - return - } - - if err := models.DeleteMilestoneByID(ctx.ParamsInt64(":id")); err != nil { - ctx.Error(500, "DeleteMilestoneByID", err) + if err := models.DeleteMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")); err != nil { + ctx.Error(500, "DeleteMilestoneByRepoID", err) return } ctx.Status(204) } - -func ChangeMilestoneStatus(ctx *context.APIContext) { - if !ctx.Repo.IsWriter() { - ctx.Status(403) - return - } - - m, err := models.GetMilestoneByID(ctx.ParamsInt64(":id")) - if err != nil { - if models.IsErrMilestoneNotExist(err) { - ctx.Handle(404, "GetMilestoneByID", err) - } else { - ctx.Handle(500, "GetMilestoneByID", err) - } - return - } - - switch ctx.Params(":action") { - case "open": - if m.IsClosed { - if err = models.ChangeMilestoneStatus(m, false); err != nil { - ctx.Handle(500, "ChangeMilestoneStatus", err) - return - } - } - ctx.JSON(200, convert.ToMilestone(m)) - case "close": - if !m.IsClosed { - m.ClosedDate = time.Now() - if err = models.ChangeMilestoneStatus(m, true); err != nil { - ctx.Handle(500, "ChangeMilestoneStatus", err) - return - } - } - ctx.JSON(200, convert.ToMilestone(m)) - default: - ctx.Status(400) - } -} |