File tree Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -30,12 +30,14 @@ import (
30
30
31
31
// Engine represents a xorm engine or session.
32
32
type Engine interface {
33
+ Decr (column string , arg ... interface {}) * xorm.Session
33
34
Delete (interface {}) (int64 , error )
34
35
Exec (string , ... interface {}) (sql.Result , error )
35
36
Find (interface {}, ... interface {}) error
36
37
Get (interface {}) (bool , error )
37
38
Id (interface {}) * xorm.Session
38
39
In (string , ... interface {}) * xorm.Session
40
+ Incr (column string , arg ... interface {}) * xorm.Session
39
41
Insert (... interface {}) (int64 , error )
40
42
InsertOne (interface {}) (int64 , error )
41
43
Iterate (interface {}, xorm.IterFunc ) error
Original file line number Diff line number Diff line change @@ -526,10 +526,28 @@ func RemoveOrgUser(orgID, userID int64) error {
526
526
}
527
527
528
528
func removeOrgRepo (e Engine , orgID , repoID int64 ) error {
529
- _ , err := e .Delete (& TeamRepo {
529
+ teamRepos := make ([]* TeamRepo , 0 , 10 )
530
+ if err := e .Find (& teamRepos , & TeamRepo {OrgID : orgID , RepoID : repoID }); err != nil {
531
+ return err
532
+ }
533
+
534
+ if len (teamRepos ) == 0 {
535
+ return nil
536
+ }
537
+
538
+ if _ , err := e .Delete (& TeamRepo {
530
539
OrgID : orgID ,
531
540
RepoID : repoID ,
532
- })
541
+ }); err != nil {
542
+ return err
543
+ }
544
+
545
+ teamIDs := make ([]int64 , len (teamRepos ))
546
+ for i , teamRepo := range teamRepos {
547
+ teamIDs [i ] = teamRepo .ID
548
+ }
549
+
550
+ _ , err := x .Decr ("num_repos" ).In ("id" , teamIDs ).Update (new (Team ))
533
551
return err
534
552
}
535
553
You can’t perform that action at this time.
0 commit comments