Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move tracked time api convert to convert package #9665

Merged
29 changes: 0 additions & 29 deletions models/issue_tracked_time.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"time"

"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"

"xorm.io/builder"
"xorm.io/xorm"
Expand Down Expand Up @@ -60,25 +59,6 @@ func (t *TrackedTime) loadAttributes(e Engine) (err error) {
return
}

// APIFormat converts TrackedTime to API format
func (t *TrackedTime) APIFormat() (apiT *api.TrackedTime) {
apiT = &api.TrackedTime{
ID: t.ID,
IssueID: t.IssueID,
UserID: t.UserID,
UserName: t.User.Name,
Time: t.Time,
Created: t.Created,
}
if t.Issue != nil {
apiT.Issue = t.Issue.APIFormat()
}
if t.User != nil {
apiT.UserName = t.User.Name
}
return
}

// LoadAttributes load Issue, User
func (tl TrackedTimeList) LoadAttributes() (err error) {
for _, t := range tl {
Expand All @@ -89,15 +69,6 @@ func (tl TrackedTimeList) LoadAttributes() (err error) {
return
}

// APIFormat converts TrackedTimeList to API format
func (tl TrackedTimeList) APIFormat() api.TrackedTimeList {
result := make([]*api.TrackedTime, 0, len(tl))
for _, t := range tl {
result = append(result, t.APIFormat())
}
return result
}

// FindTrackedTimesOptions represent the filters for tracked times. If an ID is 0 it will be ignored.
type FindTrackedTimesOptions struct {
IssueID int64
Expand Down
38 changes: 38 additions & 0 deletions modules/convert/issue.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package convert

import (
"code.gitea.io/gitea/models"
api "code.gitea.io/gitea/modules/structs"
)

// ToTrackedTime converts TrackedTime to API format
func ToTrackedTime(t *models.TrackedTime) (apiT *api.TrackedTime) {
apiT = &api.TrackedTime{
ID: t.ID,
IssueID: t.IssueID,
UserID: t.UserID,
UserName: t.User.Name,
Time: t.Time,
Created: t.Created,
}
if t.Issue != nil {
apiT.Issue = t.Issue.APIFormat()
}
if t.User != nil {
apiT.UserName = t.User.Name
}
return
}

// ToTrackedTimeList converts TrackedTimeList to API format
func ToTrackedTimeList(tl models.TrackedTimeList) api.TrackedTimeList {
result := make([]*api.TrackedTime, 0, len(tl))
for _, t := range tl {
result = append(result, ToTrackedTime(t))
}
return result
}
11 changes: 6 additions & 5 deletions routers/api/v1/repo/issue_tracked_time.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/convert"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/routers/api/v1/utils"
)
Expand Down Expand Up @@ -93,7 +94,7 @@ func ListTrackedTimes(ctx *context.APIContext) {
ctx.Error(http.StatusInternalServerError, "LoadAttributes", err)
return
}
ctx.JSON(http.StatusOK, trackedTimes.APIFormat())
ctx.JSON(http.StatusOK, convert.ToTrackedTimeList(trackedTimes))
}

// AddTime add time manual to the given issue
Expand Down Expand Up @@ -178,7 +179,7 @@ func AddTime(ctx *context.APIContext, form api.AddTimeOption) {
ctx.Error(http.StatusInternalServerError, "LoadAttributes", err)
return
}
ctx.JSON(http.StatusOK, trackedTime.APIFormat())
ctx.JSON(http.StatusOK, convert.ToTrackedTime(trackedTime))
}

// ResetIssueTime reset time manual to the given issue
Expand Down Expand Up @@ -399,7 +400,7 @@ func ListTrackedTimesByUser(ctx *context.APIContext) {
ctx.Error(http.StatusInternalServerError, "LoadAttributes", err)
return
}
ctx.JSON(http.StatusOK, trackedTimes.APIFormat())
ctx.JSON(http.StatusOK, convert.ToTrackedTimeList(trackedTimes))
}

// ListTrackedTimesByRepository lists all tracked times of the repository
Expand Down Expand Up @@ -486,7 +487,7 @@ func ListTrackedTimesByRepository(ctx *context.APIContext) {
ctx.Error(http.StatusInternalServerError, "LoadAttributes", err)
return
}
ctx.JSON(http.StatusOK, trackedTimes.APIFormat())
ctx.JSON(http.StatusOK, convert.ToTrackedTimeList(trackedTimes))
}

// ListMyTrackedTimes lists all tracked times of the current user
Expand Down Expand Up @@ -530,5 +531,5 @@ func ListMyTrackedTimes(ctx *context.APIContext) {
return
}

ctx.JSON(http.StatusOK, trackedTimes.APIFormat())
ctx.JSON(http.StatusOK, convert.ToTrackedTimeList(trackedTimes))
}