mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	implemet Cache for Stopwatches.APIFormat() (#12730)
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user