diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/issue.go | 75 | ||||
-rw-r--r-- | models/issue_assignees.go | 5 | ||||
-rw-r--r-- | models/issue_label.go | 12 | ||||
-rw-r--r-- | models/issue_label_test.go | 12 |
4 files changed, 10 insertions, 94 deletions
diff --git a/models/issue.go b/models/issue.go index d356682f01..340a431ad1 100644 --- a/models/issue.go +++ b/models/issue.go @@ -138,6 +138,11 @@ func (issue *Issue) GetPullRequest() (pr *PullRequest, err error) { return } +// LoadLabels loads labels +func (issue *Issue) LoadLabels() error { + return issue.loadLabels(x) +} + func (issue *Issue) loadLabels(e Engine) (err error) { if issue.Labels == nil { issue.Labels, err = getLabelsByIssueID(e, issue.ID) @@ -364,76 +369,6 @@ func (issue *Issue) State() api.StateType { return api.StateOpen } -// APIFormat assumes some fields assigned with values: -// Required - Poster, Labels, -// Optional - Milestone, Assignee, PullRequest -func (issue *Issue) APIFormat() *api.Issue { - return issue.apiFormat(x) -} - -func (issue *Issue) apiFormat(e Engine) *api.Issue { - issue.loadLabels(e) - apiLabels := make([]*api.Label, len(issue.Labels)) - for i := range issue.Labels { - apiLabels[i] = issue.Labels[i].APIFormat() - } - - issue.loadPoster(e) - issue.loadRepo(e) - apiIssue := &api.Issue{ - ID: issue.ID, - URL: issue.APIURL(), - HTMLURL: issue.HTMLURL(), - Index: issue.Index, - Poster: issue.Poster.APIFormat(), - Title: issue.Title, - Body: issue.Content, - Labels: apiLabels, - State: issue.State(), - Comments: issue.NumComments, - Created: issue.CreatedUnix.AsTime(), - Updated: issue.UpdatedUnix.AsTime(), - } - - apiIssue.Repo = &api.RepositoryMeta{ - ID: issue.Repo.ID, - Name: issue.Repo.Name, - Owner: issue.Repo.OwnerName, - FullName: issue.Repo.FullName(), - } - - if issue.ClosedUnix != 0 { - apiIssue.Closed = issue.ClosedUnix.AsTimePtr() - } - - issue.loadMilestone(e) - if issue.Milestone != nil { - apiIssue.Milestone = issue.Milestone.APIFormat() - } - - issue.loadAssignees(e) - if len(issue.Assignees) > 0 { - for _, assignee := range issue.Assignees { - apiIssue.Assignees = append(apiIssue.Assignees, assignee.APIFormat()) - } - apiIssue.Assignee = issue.Assignees[0].APIFormat() // For compatibility, we're keeping the first assignee as `apiIssue.Assignee` - } - if issue.IsPull { - issue.loadPullRequest(e) - apiIssue.PullRequest = &api.PullRequestMeta{ - HasMerged: issue.PullRequest.HasMerged, - } - if issue.PullRequest.HasMerged { - apiIssue.PullRequest.Merged = issue.PullRequest.MergedUnix.AsTimePtr() - } - } - if issue.DeadlineUnix != 0 { - apiIssue.Deadline = issue.DeadlineUnix.AsTimePtr() - } - - return apiIssue -} - // HashTag returns unique hash tag for issue. func (issue *Issue) HashTag() string { return "issue-" + com.ToStr(issue.ID) diff --git a/models/issue_assignees.go b/models/issue_assignees.go index f03980193f..577ed860f3 100644 --- a/models/issue_assignees.go +++ b/models/issue_assignees.go @@ -19,6 +19,11 @@ type IssueAssignees struct { IssueID int64 `xorm:"INDEX"` } +// LoadAssignees load assignees of this issue. +func (issue *Issue) LoadAssignees() error { + return issue.loadAssignees(x) +} + // This loads all assignees of an issue func (issue *Issue) loadAssignees(e Engine) (err error) { // Reset maybe preexisting assignees diff --git a/models/issue_label.go b/models/issue_label.go index 9e492dbec1..c111afb2ff 100644 --- a/models/issue_label.go +++ b/models/issue_label.go @@ -12,8 +12,6 @@ import ( "strconv" "strings" - api "code.gitea.io/gitea/modules/structs" - "xorm.io/builder" "xorm.io/xorm" ) @@ -37,16 +35,6 @@ type Label struct { IsExcluded bool `xorm:"-"` } -// APIFormat converts a Label to the api.Label format -func (label *Label) APIFormat() *api.Label { - return &api.Label{ - ID: label.ID, - Name: label.Name, - Color: strings.TrimLeft(label.Color, "#"), - Description: label.Description, - } -} - // GetLabelTemplateFile loads the label template file by given name, // then parses and returns a list of name-color pairs and optionally description. func GetLabelTemplateFile(name string) ([][3]string, error) { diff --git a/models/issue_label_test.go b/models/issue_label_test.go index d831792861..6f51473fcb 100644 --- a/models/issue_label_test.go +++ b/models/issue_label_test.go @@ -8,23 +8,11 @@ import ( "html/template" "testing" - api "code.gitea.io/gitea/modules/structs" - "github.com/stretchr/testify/assert" ) // TODO TestGetLabelTemplateFile -func TestLabel_APIFormat(t *testing.T) { - assert.NoError(t, PrepareTestDatabase()) - label := AssertExistsAndLoadBean(t, &Label{ID: 1}).(*Label) - assert.Equal(t, api.Label{ - ID: label.ID, - Name: label.Name, - Color: "abcdef", - }, *label.APIFormat()) -} - func TestLabel_CalOpenIssues(t *testing.T) { assert.NoError(t, PrepareTestDatabase()) label := AssertExistsAndLoadBean(t, &Label{ID: 1}).(*Label) |