From b70db618547b2167cac7e35be5405fb385512f30 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 14 May 2014 13:04:57 -0400 Subject: Fix #185 --- models/repo.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 4382bd7d..0594c6c6 100644 --- a/models/repo.go +++ b/models/repo.go @@ -676,15 +676,33 @@ func DeleteRepository(userId, repoId int64, userName string) (err error) { sess.Rollback() return err } - if _, err = sess.Delete(&Issue{RepoId: repoId}); err != nil { + if _, err = sess.Delete(&IssueUser{RepoId: repoId}); err != nil { sess.Rollback() return err } - if _, err = sess.Delete(&IssueUser{RepoId: repoId}); err != nil { + if _, err = sess.Delete(&Milestone{RepoId: repoId}); err != nil { sess.Rollback() return err } - if _, err = sess.Delete(&Milestone{RepoId: repoId}); err != nil { + if _, err = sess.Delete(&Release{RepoId: repoId}); err != nil { + sess.Rollback() + return err + } + + // Delete comments. + if err = orm.Iterate(&Issue{RepoId: repoId}, func(idx int, bean interface{}) error { + issue := bean.(*Issue) + if _, err = sess.Delete(&Comment{IssueId: issue.Id}); err != nil { + sess.Rollback() + return err + } + return nil + }); err != nil { + sess.Rollback() + return err + } + + if _, err = sess.Delete(&Issue{RepoId: repoId}); err != nil { sess.Rollback() return err } -- cgit v1.2.3