@@ -1128,11 +1128,8 @@ func Issues(opts *IssuesOptions) ([]*Issue, error) {
1128
1128
return nil , fmt .Errorf ("Find: %v" , err )
1129
1129
}
1130
1130
1131
- // FIXME: use IssueList to improve performance.
1132
- for i := range issues {
1133
- if err := issues [i ].LoadAttributes (); err != nil {
1134
- return nil , fmt .Errorf ("LoadAttributes [%d]: %v" , issues [i ].ID , err )
1135
- }
1131
+ if err := IssueList (issues ).LoadAttributes (); err != nil {
1132
+ return nil , fmt .Errorf ("LoadAttributes: %v" , err )
1136
1133
}
1137
1134
1138
1135
return issues , nil
@@ -1399,62 +1396,3 @@ func updateIssue(e Engine, issue *Issue) error {
1399
1396
func UpdateIssue (issue * Issue ) error {
1400
1397
return updateIssue (x , issue )
1401
1398
}
1402
-
1403
- // IssueList defines a list of issues
1404
- type IssueList []* Issue
1405
-
1406
- func (issues IssueList ) getRepoIDs () []int64 {
1407
- repoIDs := make ([]int64 , 0 , len (issues ))
1408
- for _ , issue := range issues {
1409
- var has bool
1410
- for _ , repoID := range repoIDs {
1411
- if repoID == issue .RepoID {
1412
- has = true
1413
- break
1414
- }
1415
- }
1416
- if ! has {
1417
- repoIDs = append (repoIDs , issue .RepoID )
1418
- }
1419
- }
1420
- return repoIDs
1421
- }
1422
-
1423
- func (issues IssueList ) loadRepositories (e Engine ) ([]* Repository , error ) {
1424
- if len (issues ) == 0 {
1425
- return nil , nil
1426
- }
1427
-
1428
- repoIDs := issues .getRepoIDs ()
1429
- rows , err := e .
1430
- Where ("id > 0" ).
1431
- In ("id" , repoIDs ).
1432
- Rows (new (Repository ))
1433
- if err != nil {
1434
- return nil , fmt .Errorf ("find repository: %v" , err )
1435
- }
1436
- defer rows .Close ()
1437
-
1438
- repositories := make ([]* Repository , 0 , len (repoIDs ))
1439
- repoMaps := make (map [int64 ]* Repository , len (repoIDs ))
1440
- for rows .Next () {
1441
- var repo Repository
1442
- err = rows .Scan (& repo )
1443
- if err != nil {
1444
- return nil , fmt .Errorf ("find repository: %v" , err )
1445
- }
1446
-
1447
- repositories = append (repositories , & repo )
1448
- repoMaps [repo .ID ] = & repo
1449
- }
1450
-
1451
- for _ , issue := range issues {
1452
- issue .Repo = repoMaps [issue .RepoID ]
1453
- }
1454
- return repositories , nil
1455
- }
1456
-
1457
- // LoadRepositories loads issues' all repositories
1458
- func (issues IssueList ) LoadRepositories () ([]* Repository , error ) {
1459
- return issues .loadRepositories (x )
1460
- }
0 commit comments