@@ -155,7 +155,7 @@ func CountReviews(ctx context.Context, opts FindReviewOptions) (int64, error) {
155155 return db .GetEngine (ctx ).Where (opts .toCond ()).Count (& Review {})
156156}
157157
158- var allowedReivewTypes = []ReviewType {ReviewTypeApprove , ReviewTypeReject , ReviewTypeRequest }
158+ var countedReivewTypes = []ReviewType {ReviewTypeApprove , ReviewTypeReject , ReviewTypeRequest }
159159
160160// GetReviewsByIssueID gets the latest review of each reviewer for a pull request
161161func GetReviewsByIssueID (ctx context.Context , issueID int64 ) (ReviewList , ReviewList , error ) {
@@ -169,11 +169,11 @@ func GetReviewsByIssueID(ctx context.Context, issueID int64) (ReviewList, Review
169169 // filter them in memory to get the latest review of each reviewer
170170 // Since the reviews should not be too many for one issue, less than 100 commonly, it's acceptable to do this in memory
171171 // And since there are too less indexes in review table, it will be very slow to filter in the database
172- reviewersMap := make (map [int64 ][]* Review ) // key is reviewer id
173- originalReviewersMap := make (map [int64 ][]* Review )
174- reviewTeamsMap := make (map [int64 ][]* Review )
172+ reviewersMap := make (map [int64 ][]* Review ) // key is reviewer id
173+ originalReviewersMap := make (map [int64 ][]* Review ) // key is original author id
174+ reviewTeamsMap := make (map [int64 ][]* Review ) // key is reviewer team id
175175 for _ , review := range reviews {
176- if review .ReviewerTeamID == 0 && slices .Contains (allowedReivewTypes , review .Type ) && ! review .Dismissed {
176+ if review .ReviewerTeamID == 0 && slices .Contains (countedReivewTypes , review .Type ) && ! review .Dismissed {
177177 if review .OriginalAuthorID != 0 {
178178 originalReviewersMap [review .OriginalAuthorID ] = append (originalReviewersMap [review .OriginalAuthorID ], review )
179179 } else {
@@ -184,27 +184,29 @@ func GetReviewsByIssueID(ctx context.Context, issueID int64) (ReviewList, Review
184184 }
185185 }
186186
187- mergedReviews := make ([]* Review , 0 , 10 )
187+ individualReviews := make ([]* Review , 0 , 10 )
188188 for _ , reviews := range reviewersMap {
189- mergedReviews = append (mergedReviews , reviews [len (reviews )- 1 ])
189+ individualReviews = append (individualReviews , reviews [len (reviews )- 1 ])
190190 }
191- sort .Slice (mergedReviews , func (i , j int ) bool {
192- return mergedReviews [i ].UpdatedUnix < mergedReviews [j ].UpdatedUnix
191+ sort .Slice (individualReviews , func (i , j int ) bool {
192+ return individualReviews [i ].UpdatedUnix < individualReviews [j ].UpdatedUnix
193193 })
194194
195- originalReviewers := make ([]* Review , 0 , 10 )
195+ originalReviews := make ([]* Review , 0 , 10 )
196196 for _ , reviews := range originalReviewersMap {
197- originalReviewers = append (originalReviewers , reviews [len (reviews )- 1 ])
197+ originalReviews = append (originalReviews , reviews [len (reviews )- 1 ])
198198 }
199+ sort .Slice (originalReviews , func (i , j int ) bool {
200+ return originalReviews [i ].UpdatedUnix < originalReviews [j ].UpdatedUnix
201+ })
199202
200203 teamReviewRequests := make ([]* Review , 0 , 5 )
201204 for _ , reviews := range reviewTeamsMap {
202205 teamReviewRequests = append (teamReviewRequests , reviews [len (reviews )- 1 ])
203206 }
204-
205207 sort .Slice (teamReviewRequests , func (i , j int ) bool {
206208 return teamReviewRequests [i ].UpdatedUnix < teamReviewRequests [j ].UpdatedUnix
207209 })
208210
209- return append (mergedReviews , teamReviewRequests ... ), originalReviewers , nil
211+ return append (individualReviews , teamReviewRequests ... ), originalReviews , nil
210212}
0 commit comments