mirror of
https://codeberg.org/davrot/forgejo.git
synced 2025-05-22 20:00:03 +02:00
Extract createComment (#9125)
* Extract createComment * fix lint * fix lint
This commit is contained in:
parent
7c6f2e27be
commit
2011a5b818
9 changed files with 130 additions and 53 deletions
|
@ -495,7 +495,7 @@ func (c *Comment) CodeCommentURL() string {
|
|||
return fmt.Sprintf("%s/files#%s", c.Issue.HTMLURL(), c.HashTag())
|
||||
}
|
||||
|
||||
func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err error) {
|
||||
func createCommentWithNoAction(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err error) {
|
||||
var LabelID int64
|
||||
if opts.Label != nil {
|
||||
LabelID = opts.Label.ID
|
||||
|
@ -539,12 +539,6 @@ func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if !opts.NoAction {
|
||||
if err = sendCreateCommentAction(e, opts, comment); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if err = comment.addCrossReferences(e, opts.Doer, false); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -651,19 +645,7 @@ func sendCreateCommentAction(e *xorm.Session, opts *CreateCommentOptions, commen
|
|||
return nil
|
||||
}
|
||||
|
||||
func createMilestoneComment(e *xorm.Session, doer *User, repo *Repository, issue *Issue, oldMilestoneID, milestoneID int64) (*Comment, error) {
|
||||
return createComment(e, &CreateCommentOptions{
|
||||
Type: CommentTypeMilestone,
|
||||
Doer: doer,
|
||||
Repo: repo,
|
||||
Issue: issue,
|
||||
OldMilestoneID: oldMilestoneID,
|
||||
MilestoneID: milestoneID,
|
||||
})
|
||||
}
|
||||
|
||||
func createDeadlineComment(e *xorm.Session, doer *User, issue *Issue, newDeadlineUnix timeutil.TimeStamp) (*Comment, error) {
|
||||
|
||||
var content string
|
||||
var commentType CommentType
|
||||
|
||||
|
@ -685,13 +667,18 @@ func createDeadlineComment(e *xorm.Session, doer *User, issue *Issue, newDeadlin
|
|||
return nil, err
|
||||
}
|
||||
|
||||
return createComment(e, &CreateCommentOptions{
|
||||
var opts = &CreateCommentOptions{
|
||||
Type: commentType,
|
||||
Doer: doer,
|
||||
Repo: issue.Repo,
|
||||
Issue: issue,
|
||||
Content: content,
|
||||
})
|
||||
}
|
||||
comment, err := createCommentWithNoAction(e, opts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return comment, sendCreateCommentAction(e, opts, comment)
|
||||
}
|
||||
|
||||
// Creates issue dependency comment
|
||||
|
@ -705,27 +692,35 @@ func createIssueDependencyComment(e *xorm.Session, doer *User, issue *Issue, dep
|
|||
}
|
||||
|
||||
// Make two comments, one in each issue
|
||||
_, err = createComment(e, &CreateCommentOptions{
|
||||
var opts = &CreateCommentOptions{
|
||||
Type: cType,
|
||||
Doer: doer,
|
||||
Repo: issue.Repo,
|
||||
Issue: issue,
|
||||
DependentIssueID: dependentIssue.ID,
|
||||
})
|
||||
}
|
||||
comment, err := createCommentWithNoAction(e, opts)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if err = sendCreateCommentAction(e, opts, comment); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = createComment(e, &CreateCommentOptions{
|
||||
opts = &CreateCommentOptions{
|
||||
Type: cType,
|
||||
Doer: doer,
|
||||
Repo: issue.Repo,
|
||||
Issue: dependentIssue,
|
||||
DependentIssueID: issue.ID,
|
||||
})
|
||||
}
|
||||
comment, err = createCommentWithNoAction(e, opts)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if err = sendCreateCommentAction(e, opts, comment); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -758,7 +753,6 @@ type CreateCommentOptions struct {
|
|||
RefCommentID int64
|
||||
RefAction references.XRefAction
|
||||
RefIsPull bool
|
||||
NoAction bool
|
||||
}
|
||||
|
||||
// CreateComment creates comment of issue or commit.
|
||||
|
@ -769,7 +763,31 @@ func CreateComment(opts *CreateCommentOptions) (comment *Comment, err error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
comment, err = createComment(sess, opts)
|
||||
comment, err = createCommentWithNoAction(sess, opts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err = sendCreateCommentAction(sess, opts, comment); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err = sess.Commit(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return comment, nil
|
||||
}
|
||||
|
||||
// CreateCommentWithNoAction creates comment of issue or commit with no action created
|
||||
func CreateCommentWithNoAction(opts *CreateCommentOptions) (comment *Comment, err error) {
|
||||
sess := x.NewSession()
|
||||
defer sess.Close()
|
||||
if err = sess.Begin(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
comment, err = createCommentWithNoAction(sess, opts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue