mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:45:25 +01:00 
			
		
		
		
	implemet Cache for Stopwatches.APIFormat() (#12730)
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
							parent
							
								
									f10d3ea803
								
							
						
					
					
						commit
						1c35353c53
					
				| @ -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 | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user