Simplified comment creation of issue dependencies
This commit is contained in:
parent
17b2d43a4d
commit
6af8ef7cef
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user