From 418dab9b969f9e933166b728e739e8c2a6846b04 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Thu, 9 Feb 2017 15:45:35 -0500 Subject: models/pull: load attributes when fetch list of pull requests (#4089) Code only fetched issues corresponding to the pull requests, and left out necessary base/head repository objects, which is required later to generate API format. --- models/pull.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'models') diff --git a/models/pull.go b/models/pull.go index cb52a302..7aaffe43 100644 --- a/models/pull.go +++ b/models/pull.go @@ -621,18 +621,18 @@ func (pr *PullRequest) AddToTaskQueue() { type PullRequestList []*PullRequest -func (prs PullRequestList) loadAttributes(e Engine) error { +func (prs PullRequestList) loadAttributes(e Engine) (err error) { if len(prs) == 0 { return nil } - // Load issues. + // Load issues issueIDs := make([]int64, 0, len(prs)) for i := range prs { issueIDs = append(issueIDs, prs[i].IssueID) } issues := make([]*Issue, 0, len(issueIDs)) - if err := e.Where("id > 0").In("id", issueIDs).Find(&issues); err != nil { + if err = e.Where("id > 0").In("id", issueIDs).Find(&issues); err != nil { return fmt.Errorf("find issues: %v", err) } @@ -643,6 +643,14 @@ func (prs PullRequestList) loadAttributes(e Engine) error { for i := range prs { prs[i].Issue = set[prs[i].IssueID] } + + // Load attributes + for i := range prs { + if err = prs[i].loadAttributes(e); err != nil { + return fmt.Errorf("loadAttributes [%d]: %v", prs[i].ID, err) + } + } + return nil } -- cgit v1.2.3