Skip to content

Commit a21f7c5

Browse files
committed
Extract createComment
1 parent 7b4d2f7 commit a21f7c5

File tree

9 files changed

+131
-51
lines changed

9 files changed

+131
-51
lines changed

models/issue.go

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -656,12 +656,18 @@ func (issue *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (er
656656
if !issue.IsClosed {
657657
cmtType = CommentTypeReopen
658658
}
659-
if _, err := createComment(e, &CreateCommentOptions{
659+
660+
var opts = &CreateCommentOptions{
660661
Type: cmtType,
661662
Doer: doer,
662663
Repo: issue.Repo,
663664
Issue: issue,
664-
}); err != nil {
665+
}
666+
comment, err := createCommentWithNoAction(e, opts)
667+
if err != nil {
668+
return err
669+
}
670+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
665671
return err
666672
}
667673

@@ -711,17 +717,21 @@ func (issue *Issue) ChangeTitle(doer *User, oldTitle string) (err error) {
711717
return fmt.Errorf("loadRepo: %v", err)
712718
}
713719

714-
if _, err = createComment(sess, &CreateCommentOptions{
720+
var opts = &CreateCommentOptions{
715721
Type: CommentTypeChangeTitle,
716722
Doer: doer,
717723
Repo: issue.Repo,
718724
Issue: issue,
719725
OldTitle: oldTitle,
720726
NewTitle: issue.Title,
721-
}); err != nil {
727+
}
728+
comment, err := createCommentWithNoAction(sess, opts)
729+
if err != nil {
722730
return fmt.Errorf("createComment: %v", err)
723731
}
724-
732+
if err = sendCreateCommentAction(sess, opts, comment); err != nil {
733+
return err
734+
}
725735
if err = issue.addCrossReferences(sess, doer, true); err != nil {
726736
return err
727737
}
@@ -740,13 +750,18 @@ func AddDeletePRBranchComment(doer *User, repo *Repository, issueID int64, branc
740750
if err := sess.Begin(); err != nil {
741751
return err
742752
}
743-
if _, err := createComment(sess, &CreateCommentOptions{
753+
var opts = &CreateCommentOptions{
744754
Type: CommentTypeDeleteBranch,
745755
Doer: doer,
746756
Repo: repo,
747757
Issue: issue,
748758
CommitSHA: branchName,
749-
}); err != nil {
759+
}
760+
comment, err := createCommentWithNoAction(sess, opts)
761+
if err != nil {
762+
return err
763+
}
764+
if err = sendCreateCommentAction(sess, opts, comment); err != nil {
750765
return err
751766
}
752767

@@ -880,7 +895,20 @@ func newIssue(e *xorm.Session, doer *User, opts NewIssueOptions) (err error) {
880895
return err
881896
}
882897

883-
if _, err = createMilestoneComment(e, doer, opts.Repo, opts.Issue, 0, opts.Issue.MilestoneID); err != nil {
898+
var opts = &CreateCommentOptions{
899+
Type: CommentTypeMilestone,
900+
Doer: doer,
901+
Repo: opts.Repo,
902+
Issue: opts.Issue,
903+
OldMilestoneID: 0,
904+
MilestoneID: opts.Issue.MilestoneID,
905+
}
906+
comment, err := createCommentWithNoAction(e, opts)
907+
if err != nil {
908+
return err
909+
}
910+
911+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
884912
return err
885913
}
886914
}

models/issue_assignees.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,18 +131,22 @@ func (issue *Issue) toggleAssignee(sess *xorm.Session, doer *User, assigneeID in
131131
return false, nil, fmt.Errorf("loadRepo: %v", err)
132132
}
133133

134-
// Comment
135-
comment, err = createComment(sess, &CreateCommentOptions{
134+
var opts = &CreateCommentOptions{
136135
Type: CommentTypeAssignees,
137136
Doer: doer,
138137
Repo: issue.Repo,
139138
Issue: issue,
140139
RemovedAssignee: removed,
141140
AssigneeID: assigneeID,
142-
})
141+
}
142+
// Comment
143+
comment, err = createCommentWithNoAction(sess, opts)
143144
if err != nil {
144145
return false, nil, fmt.Errorf("createComment: %v", err)
145146
}
147+
if err = sendCreateCommentAction(sess, opts, comment); err != nil {
148+
return false, nil, err
149+
}
146150

147151
// if pull request is in the middle of creation - don't call webhook
148152
if isCreate {

models/issue_comment.go

Lines changed: 44 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ func (c *Comment) CodeCommentURL() string {
495495
return fmt.Sprintf("%s/files#%s", c.Issue.HTMLURL(), c.HashTag())
496496
}
497497

498-
func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err error) {
498+
func createCommentWithNoAction(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err error) {
499499
var LabelID int64
500500
if opts.Label != nil {
501501
LabelID = opts.Label.ID
@@ -539,12 +539,6 @@ func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err
539539
return nil, err
540540
}
541541

542-
if !opts.NoAction {
543-
if err = sendCreateCommentAction(e, opts, comment); err != nil {
544-
return nil, err
545-
}
546-
}
547-
548542
if err = comment.addCrossReferences(e, opts.Doer, false); err != nil {
549543
return nil, err
550544
}
@@ -651,19 +645,7 @@ func sendCreateCommentAction(e *xorm.Session, opts *CreateCommentOptions, commen
651645
return nil
652646
}
653647

654-
func createMilestoneComment(e *xorm.Session, doer *User, repo *Repository, issue *Issue, oldMilestoneID, milestoneID int64) (*Comment, error) {
655-
return createComment(e, &CreateCommentOptions{
656-
Type: CommentTypeMilestone,
657-
Doer: doer,
658-
Repo: repo,
659-
Issue: issue,
660-
OldMilestoneID: oldMilestoneID,
661-
MilestoneID: milestoneID,
662-
})
663-
}
664-
665648
func createDeadlineComment(e *xorm.Session, doer *User, issue *Issue, newDeadlineUnix timeutil.TimeStamp) (*Comment, error) {
666-
667649
var content string
668650
var commentType CommentType
669651

@@ -685,13 +667,18 @@ func createDeadlineComment(e *xorm.Session, doer *User, issue *Issue, newDeadlin
685667
return nil, err
686668
}
687669

688-
return createComment(e, &CreateCommentOptions{
670+
var opts = &CreateCommentOptions{
689671
Type: commentType,
690672
Doer: doer,
691673
Repo: issue.Repo,
692674
Issue: issue,
693675
Content: content,
694-
})
676+
}
677+
comment, err := createCommentWithNoAction(e, opts)
678+
if err != nil {
679+
return nil, err
680+
}
681+
return comment, sendCreateCommentAction(e, opts, comment)
695682
}
696683

697684
// Creates issue dependency comment
@@ -705,27 +692,35 @@ func createIssueDependencyComment(e *xorm.Session, doer *User, issue *Issue, dep
705692
}
706693

707694
// Make two comments, one in each issue
708-
_, err = createComment(e, &CreateCommentOptions{
695+
var opts = &CreateCommentOptions{
709696
Type: cType,
710697
Doer: doer,
711698
Repo: issue.Repo,
712699
Issue: issue,
713700
DependentIssueID: dependentIssue.ID,
714-
})
701+
}
702+
comment, err := createCommentWithNoAction(e, opts)
715703
if err != nil {
716704
return
717705
}
706+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
707+
return err
708+
}
718709

719-
_, err = createComment(e, &CreateCommentOptions{
710+
opts = &CreateCommentOptions{
720711
Type: cType,
721712
Doer: doer,
722713
Repo: issue.Repo,
723714
Issue: dependentIssue,
724715
DependentIssueID: issue.ID,
725-
})
716+
}
717+
comment, err = createCommentWithNoAction(e, opts)
726718
if err != nil {
727719
return
728720
}
721+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
722+
return err
723+
}
729724

730725
return
731726
}
@@ -758,7 +753,6 @@ type CreateCommentOptions struct {
758753
RefCommentID int64
759754
RefAction references.XRefAction
760755
RefIsPull bool
761-
NoAction bool
762756
}
763757

764758
// CreateComment creates comment of issue or commit.
@@ -769,7 +763,30 @@ func CreateComment(opts *CreateCommentOptions) (comment *Comment, err error) {
769763
return nil, err
770764
}
771765

772-
comment, err = createComment(sess, opts)
766+
comment, err = createCommentWithNoAction(sess, opts)
767+
if err != nil {
768+
return nil, err
769+
}
770+
771+
if err = sendCreateCommentAction(sess, opts, comment); err != nil {
772+
return nil, err
773+
}
774+
775+
if err = sess.Commit(); err != nil {
776+
return nil, err
777+
}
778+
779+
return comment, nil
780+
}
781+
782+
func CreateCommentWithNoAction(opts *CreateCommentOptions) (comment *Comment, err error) {
783+
sess := x.NewSession()
784+
defer sess.Close()
785+
if err = sess.Begin(); err != nil {
786+
return nil, err
787+
}
788+
789+
comment, err = createCommentWithNoAction(sess, opts)
773790
if err != nil {
774791
return nil, err
775792
}

models/issue_label.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -402,14 +402,19 @@ func newIssueLabel(e *xorm.Session, issue *Issue, label *Label, doer *User) (err
402402
return
403403
}
404404

405-
if _, err = createComment(e, &CreateCommentOptions{
405+
var opts = &CreateCommentOptions{
406406
Type: CommentTypeLabel,
407407
Doer: doer,
408408
Repo: issue.Repo,
409409
Issue: issue,
410410
Label: label,
411411
Content: "1",
412-
}); err != nil {
412+
}
413+
comment, err := createCommentWithNoAction(e, opts)
414+
if err != nil {
415+
return err
416+
}
417+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
413418
return err
414419
}
415420

@@ -478,13 +483,18 @@ func deleteIssueLabel(e *xorm.Session, issue *Issue, label *Label, doer *User) (
478483
return
479484
}
480485

481-
if _, err = createComment(e, &CreateCommentOptions{
486+
var opts = &CreateCommentOptions{
482487
Type: CommentTypeLabel,
483488
Doer: doer,
484489
Repo: issue.Repo,
485490
Issue: issue,
486491
Label: label,
487-
}); err != nil {
492+
}
493+
comment, err := createCommentWithNoAction(e, opts)
494+
if err != nil {
495+
return err
496+
}
497+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
488498
return err
489499
}
490500

models/issue_lock.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,21 @@ func updateIssueLock(opts *IssueLockOptions, lock bool) error {
4545
return err
4646
}
4747

48-
_, err := createComment(sess, &CreateCommentOptions{
48+
var opt = &CreateCommentOptions{
4949
Doer: opts.Doer,
5050
Issue: opts.Issue,
5151
Repo: opts.Issue.Repo,
5252
Type: commentType,
5353
Content: opts.Reason,
54-
})
54+
}
55+
comment, err := createCommentWithNoAction(sess, opt)
5556
if err != nil {
5657
return err
5758
}
5859

60+
if err = sendCreateCommentAction(sess, opt, comment); err != nil {
61+
return err
62+
}
63+
5964
return sess.Commit()
6065
}

models/issue_milestone.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,20 @@ func changeMilestoneAssign(e *xorm.Session, doer *User, issue *Issue, oldMilesto
386386
return err
387387
}
388388

389-
if _, err := createMilestoneComment(e, doer, issue.Repo, issue, oldMilestoneID, issue.MilestoneID); err != nil {
389+
var opts = &CreateCommentOptions{
390+
Type: CommentTypeMilestone,
391+
Doer: doer,
392+
Repo: issue.Repo,
393+
Issue: issue,
394+
OldMilestoneID: oldMilestoneID,
395+
MilestoneID: issue.MilestoneID,
396+
}
397+
comment, err := createCommentWithNoAction(e, opts)
398+
if err != nil {
399+
return err
400+
}
401+
402+
if err := sendCreateCommentAction(e, opts, comment); err != nil {
390403
return err
391404
}
392405
}

models/issue_xref.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func (issue *Issue) createCrossReferences(e *xorm.Session, ctx *crossReferencesC
116116
if ctx.OrigComment != nil {
117117
refCommentID = ctx.OrigComment.ID
118118
}
119-
if _, err := createComment(e, &CreateCommentOptions{
119+
var opts = &CreateCommentOptions{
120120
Type: ctx.Type,
121121
Doer: ctx.Doer,
122122
Repo: xref.Issue.Repo,
@@ -126,7 +126,12 @@ func (issue *Issue) createCrossReferences(e *xorm.Session, ctx *crossReferencesC
126126
RefCommentID: refCommentID,
127127
RefAction: xref.Action,
128128
RefIsPull: ctx.OrigIssue.IsPull,
129-
}); err != nil {
129+
}
130+
comment, err := createCommentWithNoAction(e, opts)
131+
if err != nil {
132+
return err
133+
}
134+
if err = sendCreateCommentAction(e, opts, comment); err != nil {
130135
return err
131136
}
132137
}

models/review.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,14 +286,13 @@ func SubmitReview(doer *User, issue *Issue, reviewType ReviewType, content strin
286286
}
287287
}
288288

289-
comm, err := createComment(sess, &CreateCommentOptions{
289+
comm, err := createCommentWithNoAction(sess, &CreateCommentOptions{
290290
Type: CommentTypeReview,
291291
Doer: doer,
292292
Content: review.Content,
293293
Issue: issue,
294294
Repo: issue.Repo,
295295
ReviewID: review.ID,
296-
NoAction: true,
297296
})
298297
if err != nil || comm == nil {
299298
return nil, nil, err

0 commit comments

Comments
 (0)