|
|
@ -216,12 +216,39 @@ func (sw *Stopwatch) APIFormat() (api.StopWatch, error) { |
|
|
|
// APIFormat convert Stopwatches type to api.StopWatches type
|
|
|
|
func (sws Stopwatches) APIFormat() (api.StopWatches, error) { |
|
|
|
result := api.StopWatches(make([]api.StopWatch, 0, len(sws))) |
|
|
|
|
|
|
|
issueCache := make(map[int64]*Issue) |
|
|
|
repoCache := make(map[int64]*Repository) |
|
|
|
var ( |
|
|
|
issue *Issue |
|
|
|
repo *Repository |
|
|
|
ok bool |
|
|
|
err error |
|
|
|
) |
|
|
|
|
|
|
|
for _, sw := range sws { |
|
|
|
apiSW, err := sw.APIFormat() |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
issue, ok = issueCache[sw.IssueID] |
|
|
|
if !ok { |
|
|
|
issue, err = GetIssueByID(sw.IssueID) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
} |
|
|
|
result = append(result, apiSW) |
|
|
|
repo, ok = repoCache[issue.RepoID] |
|
|
|
if !ok { |
|
|
|
repo, err = GetRepositoryByID(issue.RepoID) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
result = append(result, api.StopWatch{ |
|
|
|
Created: sw.CreatedUnix.AsTime(), |
|
|
|
IssueIndex: issue.Index, |
|
|
|
IssueTitle: issue.Title, |
|
|
|
RepoOwnerName: repo.OwnerName, |
|
|
|
RepoName: repo.Name, |
|
|
|
}) |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} |