Simplified comment creation of issue dependencies

This commit is contained in:
kolaente 2018-04-20 22:56:53 +02:00
parent 17b2d43a4d
commit 6af8ef7cef
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B
2 changed files with 34 additions and 29 deletions

View File

@ -530,19 +530,36 @@ func createDeleteBranchComment(e *xorm.Session, doer *User, repo *Repository, is
}
// Creates issue dependency comment
func createIssueDependencyComment(e *xorm.Session, doer *User, issue *Issue, dependentIssue *Issue, add bool) (*Comment, error) {
func createIssueDependencyComment(e *xorm.Session, doer *User, issue *Issue, dependentIssue *Issue, add bool) (err error) {
cType := CommentTypeAddDependency
if !add {
cType = CommentTypeRemoveDependency
}
return createComment(e, &CreateCommentOptions{
// Make two comments, one in each issue
_, err = createComment(e, &CreateCommentOptions{
Type: cType,
Doer: doer,
Repo: issue.Repo,
Issue: issue,
DependentIssue: dependentIssue,
})
if err != nil {
return
}
_, err = createComment(e, &CreateCommentOptions{
Type: cType,
Doer: doer,
Repo: issue.Repo,
Issue: dependentIssue,
DependentIssue: issue,
})
if err != nil {
return
}
return
}
// CreateCommentOptions defines options for creating comment

View File

@ -30,10 +30,10 @@ const (
)
// CreateIssueDependency creates a new dependency for an issue
func CreateIssueDependency(user *User, issue, dep *Issue) (err error) {
func CreateIssueDependency(user *User, issue, dep *Issue) error {
sess := x.NewSession()
defer sess.Close()
if err = sess.Begin(); err != nil {
if err := sess.Begin(); err != nil {
return err
}
@ -66,13 +66,13 @@ func CreateIssueDependency(user *User, issue, dep *Issue) (err error) {
}
// Add comment referencing the new dependency
if _, err = createIssueDependencyComment(sess, user, issue, dep, true); err != nil {
return
if err = createIssueDependencyComment(sess, user, issue, dep, true); err != nil {
return err
}
// Create a new comment for the dependent issue
if _, err = createIssueDependencyComment(sess, user, dep, issue, true); err != nil {
return
if err = createIssueDependencyComment(sess, user, dep, issue, true); err != nil {
return err
}
return sess.Commit()
@ -86,24 +86,6 @@ func RemoveIssueDependency(user *User, issue *Issue, dep *Issue, depType Depende
return err
}
// Check if it exists
var exists bool
switch depType {
case DependencyTypeBlockedBy:
exists, err = issueDepExists(sess, issue.ID, dep.ID)
case DependencyTypeBlocking:
exists, err = issueDepExists(sess, dep.ID, issue.ID)
default:
return ErrUnknownDependencyType{depType}
}
if err != nil {
return err
}
if !exists {
return ErrDependencyNotExists{issue.ID, dep.ID}
}
var issueDepToDelete IssueDependency
switch depType {
@ -115,17 +97,23 @@ func RemoveIssueDependency(user *User, issue *Issue, dep *Issue, depType Depende
return ErrUnknownDependencyType{depType}
}
if _, err := sess.Delete(&issueDepToDelete); err != nil {
affected, err := sess.Delete(&issueDepToDelete)
if err != nil {
return err
}
// If we deleted nothing, the dependency did not exist
if affected <= 0 {
return ErrDependencyNotExists{issue.ID, dep.ID}
}
// Add comment referencing the removed dependency
if _, err = createIssueDependencyComment(sess, user, issue, dep, false); err != nil {
if err = createIssueDependencyComment(sess, user, issue, dep, false); err != nil {
return err
}
// Create a new comment for the dependent issue
if _, err = createIssueDependencyComment(sess, user, dep, issue, false); err != nil {
if err = createIssueDependencyComment(sess, user, dep, issue, false); err != nil {
return err
}
return sess.Commit()