diff --git a/services/issue/comments.go b/services/issue/comments.go index 8da16d5291..5c856eaf26 100644 --- a/services/issue/comments.go +++ b/services/issue/comments.go @@ -118,12 +118,27 @@ func UpdateComment(ctx context.Context, c *issues_model.Comment, contentVersion // DeleteComment deletes the comment func DeleteComment(ctx context.Context, doer *user_model.User, comment *issues_model.Comment) error { - reviewID := comment.ReviewID - reviewType := comment.Review.Type - err := db.WithTx(ctx, func(ctx context.Context) error { + reviewID := comment.ReviewID + reviewType := comment.Review.Type + + if reviewType == issues_model.ReviewTypePending { + found, err := db.GetEngine(ctx).Table("comment").Where("review_id = ?", reviewID).Exist() + if err != nil { + return err + } else if found { + _, err := db.GetEngine(ctx).Table("review").Where("id = ?", reviewID).Delete() + if err != nil { + return err + } + + return issues_model.DeleteComment(ctx, comment) + } + } + return issues_model.DeleteComment(ctx, comment) }) + if err != nil { return err } @@ -135,17 +150,5 @@ func DeleteComment(ctx context.Context, doer *user_model.User, comment *issues_m notify_service.DeleteComment(ctx, doer, comment) } - if reviewType == issues_model.ReviewTypePending { - found, err := db.GetEngine(ctx).Table("comment").Where("review_id = ?", reviewID).Exist() - if found { - _, err := db.GetEngine(ctx).Table("comment").Where("reviewID = ?", reviewID).Delete() - if err != nil { - return err - } - } else if err != nil { - return err - } - } - return nil }