Browse Source

delete attachments when delete repo

tags/v0.9.99
Unknwon 8 years ago
parent
commit
2cc9bc8969
1 changed files with 21 additions and 1 deletions
  1. 21
    1
      models/repo.go

+ 21
- 1
models/repo.go View File

return err return err
} }


// Delete comments.
// Delete comments and attachments.
issues := make([]*Issue, 0, 25) issues := make([]*Issue, 0, 25)
attachmentPaths := make([]string, 0, len(issues))
if err = sess.Where("repo_id=?", repoID).Find(&issues); err != nil { if err = sess.Where("repo_id=?", repoID).Find(&issues); err != nil {
return err return err
} }
if _, err = sess.Delete(&Comment{IssueID: issues[i].ID}); err != nil { if _, err = sess.Delete(&Comment{IssueID: issues[i].ID}); err != nil {
return err return err
} }

attachments := make([]*Attachment, 0, 5)
if err = sess.Where("issue_id=?", issues[i].ID).Find(&attachments); err != nil {
return err
}
for j := range attachments {
attachmentPaths = append(attachmentPaths, attachments[j].LocalPath())
}

if _, err = sess.Delete(&Attachment{IssueID: issues[i].ID}); err != nil {
return err
}
} }


if _, err = sess.Delete(&Issue{RepoID: repoID}); err != nil { if _, err = sess.Delete(&Issue{RepoID: repoID}); err != nil {
} }
} }


// Remove attachment files.
for i := range attachmentPaths {
if err = os.Remove(attachmentPaths[i]); err != nil {
log.Warn("delete attachment: %v", err)
}
}

return sess.Commit() return sess.Commit()
} }



Loading…
Cancel
Save