mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-30 06:38:37 -04: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() | ||||
| 		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