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 // 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 cType := CommentTypeAddDependency
if !add { if !add {
cType = CommentTypeRemoveDependency cType = CommentTypeRemoveDependency
} }
return createComment(e, &CreateCommentOptions{ // Make two comments, one in each issue
_, err = createComment(e, &CreateCommentOptions{
Type: cType, Type: cType,
Doer: doer, Doer: doer,
Repo: issue.Repo, Repo: issue.Repo,
Issue: issue, Issue: issue,
DependentIssue: dependentIssue, 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 // CreateCommentOptions defines options for creating comment

View File

@ -30,10 +30,10 @@ const (
) )
// CreateIssueDependency creates a new dependency for an issue // 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() sess := x.NewSession()
defer sess.Close() defer sess.Close()
if err = sess.Begin(); err != nil { if err := sess.Begin(); err != nil {
return err return err
} }
@ -66,13 +66,13 @@ func CreateIssueDependency(user *User, issue, dep *Issue) (err error) {
} }
// Add comment referencing the new dependency // Add comment referencing the new dependency
if _, err = createIssueDependencyComment(sess, user, issue, dep, true); err != nil { if err = createIssueDependencyComment(sess, user, issue, dep, true); err != nil {
return return err
} }
// Create a new comment for the dependent issue // Create a new comment for the dependent issue
if _, err = createIssueDependencyComment(sess, user, dep, issue, true); err != nil { if err = createIssueDependencyComment(sess, user, dep, issue, true); err != nil {
return return err
} }
return sess.Commit() return sess.Commit()
@ -86,24 +86,6 @@ func RemoveIssueDependency(user *User, issue *Issue, dep *Issue, depType Depende
return err 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 var issueDepToDelete IssueDependency
switch depType { switch depType {
@ -115,17 +97,23 @@ func RemoveIssueDependency(user *User, issue *Issue, dep *Issue, depType Depende
return ErrUnknownDependencyType{depType} return ErrUnknownDependencyType{depType}
} }
if _, err := sess.Delete(&issueDepToDelete); err != nil { affected, err := sess.Delete(&issueDepToDelete)
if err != nil {
return err 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 // 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 return err
} }
// Create a new comment for the dependent issue // 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 err
} }
return sess.Commit() return sess.Commit()