From 125251aa5c10b2c9909d59f4b4df471431602e1a Mon Sep 17 00:00:00 2001 From: Leni Kadali Date: Fri, 4 Apr 2025 17:57:19 +0300 Subject: [PATCH] Move implementation into db.Tx function As per the review comments, we are moving the initial implementation into the db.Tx function to ensure that all database code is run or not run. Also make sure any errors are returned first before running the database queries. --- services/issue/comments.go | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) 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 }