Merge pull request #839 from ethantkoenig/fix/remove_org_repo
Fix bug in removeOrgRepo
This commit is contained in:
		
						commit
						7c3dc51655
					
				| @ -30,12 +30,14 @@ import ( | ||||
| 
 | ||||
| // Engine represents a xorm engine or session.
 | ||||
| type Engine interface { | ||||
| 	Decr(column string, arg ...interface{}) *xorm.Session | ||||
| 	Delete(interface{}) (int64, error) | ||||
| 	Exec(string, ...interface{}) (sql.Result, error) | ||||
| 	Find(interface{}, ...interface{}) error | ||||
| 	Get(interface{}) (bool, error) | ||||
| 	Id(interface{}) *xorm.Session | ||||
| 	In(string, ...interface{}) *xorm.Session | ||||
| 	Incr(column string, arg ...interface{}) *xorm.Session | ||||
| 	Insert(...interface{}) (int64, error) | ||||
| 	InsertOne(interface{}) (int64, error) | ||||
| 	Iterate(interface{}, xorm.IterFunc) error | ||||
|  | ||||
| @ -526,10 +526,28 @@ func RemoveOrgUser(orgID, userID int64) error { | ||||
| } | ||||
| 
 | ||||
| func removeOrgRepo(e Engine, orgID, repoID int64) error { | ||||
| 	_, err := e.Delete(&TeamRepo{ | ||||
| 	teamRepos := make([]*TeamRepo, 0, 10) | ||||
| 	if err := e.Find(&teamRepos, &TeamRepo{OrgID: orgID, RepoID: repoID}); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if len(teamRepos) == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	if _, err := e.Delete(&TeamRepo{ | ||||
| 		OrgID:  orgID, | ||||
| 		RepoID: repoID, | ||||
| 	}) | ||||
| 	}); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	teamIDs := make([]int64, len(teamRepos)) | ||||
| 	for i, teamRepo := range teamRepos { | ||||
| 		teamIDs[i] = teamRepo.ID | ||||
| 	} | ||||
| 
 | ||||
| 	_, err := x.Decr("num_repos").In("id", teamIDs).Update(new(Team)) | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user