Move issue change content from models to service (#8711)
* Move issue change content from models to service * fix lint
This commit is contained in:
parent
56ebc0c003
commit
f694bb45d7
4 changed files with 63 additions and 43 deletions
|
@ -750,7 +750,6 @@ func (issue *Issue) UpdateAttachments(uuids []string) (err error) {
|
||||||
|
|
||||||
// ChangeContent changes issue content, as the given user.
|
// ChangeContent changes issue content, as the given user.
|
||||||
func (issue *Issue) ChangeContent(doer *User, content string) (err error) {
|
func (issue *Issue) ChangeContent(doer *User, content string) (err error) {
|
||||||
oldContent := issue.Content
|
|
||||||
issue.Content = content
|
issue.Content = content
|
||||||
|
|
||||||
sess := x.NewSession()
|
sess := x.NewSession()
|
||||||
|
@ -769,47 +768,7 @@ func (issue *Issue) ChangeContent(doer *User, content string) (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = sess.Commit(); err != nil {
|
return sess.Commit()
|
||||||
return err
|
|
||||||
}
|
|
||||||
sess.Close()
|
|
||||||
|
|
||||||
mode, _ := AccessLevel(issue.Poster, issue.Repo)
|
|
||||||
if issue.IsPull {
|
|
||||||
issue.PullRequest.Issue = issue
|
|
||||||
err = PrepareWebhooks(issue.Repo, HookEventPullRequest, &api.PullRequestPayload{
|
|
||||||
Action: api.HookIssueEdited,
|
|
||||||
Index: issue.Index,
|
|
||||||
Changes: &api.ChangesPayload{
|
|
||||||
Body: &api.ChangesFromPayload{
|
|
||||||
From: oldContent,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
PullRequest: issue.PullRequest.APIFormat(),
|
|
||||||
Repository: issue.Repo.APIFormat(mode),
|
|
||||||
Sender: doer.APIFormat(),
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
err = PrepareWebhooks(issue.Repo, HookEventIssues, &api.IssuePayload{
|
|
||||||
Action: api.HookIssueEdited,
|
|
||||||
Index: issue.Index,
|
|
||||||
Changes: &api.ChangesPayload{
|
|
||||||
Body: &api.ChangesFromPayload{
|
|
||||||
From: oldContent,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Issue: issue.APIFormat(),
|
|
||||||
Repository: issue.Repo.APIFormat(mode),
|
|
||||||
Sender: doer.APIFormat(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err)
|
|
||||||
} else {
|
|
||||||
go HookQueue.Add(issue.RepoID)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTasks returns the amount of tasks in the issues content
|
// GetTasks returns the amount of tasks in the issues content
|
||||||
|
|
|
@ -277,3 +277,41 @@ func (m *webhookNotifier) NotifyNewIssue(issue *models.Issue) {
|
||||||
go models.HookQueue.Add(issue.RepoID)
|
go models.HookQueue.Add(issue.RepoID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *webhookNotifier) NotifyIssueChangeContent(doer *models.User, issue *models.Issue, oldContent string) {
|
||||||
|
mode, _ := models.AccessLevel(issue.Poster, issue.Repo)
|
||||||
|
var err error
|
||||||
|
if issue.IsPull {
|
||||||
|
issue.PullRequest.Issue = issue
|
||||||
|
err = models.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{
|
||||||
|
Action: api.HookIssueEdited,
|
||||||
|
Index: issue.Index,
|
||||||
|
Changes: &api.ChangesPayload{
|
||||||
|
Body: &api.ChangesFromPayload{
|
||||||
|
From: oldContent,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PullRequest: issue.PullRequest.APIFormat(),
|
||||||
|
Repository: issue.Repo.APIFormat(mode),
|
||||||
|
Sender: doer.APIFormat(),
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
err = models.PrepareWebhooks(issue.Repo, models.HookEventIssues, &api.IssuePayload{
|
||||||
|
Action: api.HookIssueEdited,
|
||||||
|
Index: issue.Index,
|
||||||
|
Changes: &api.ChangesPayload{
|
||||||
|
Body: &api.ChangesFromPayload{
|
||||||
|
From: oldContent,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Issue: issue.APIFormat(),
|
||||||
|
Repository: issue.Repo.APIFormat(mode),
|
||||||
|
Sender: doer.APIFormat(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err)
|
||||||
|
} else {
|
||||||
|
go models.HookQueue.Add(issue.RepoID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1066,7 +1066,7 @@ func UpdateIssueContent(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
content := ctx.Query("content")
|
content := ctx.Query("content")
|
||||||
if err := issue.ChangeContent(ctx.User, content); err != nil {
|
if err := issue_service.ChangeContent(issue, ctx.User, content); err != nil {
|
||||||
ctx.ServerError("ChangeContent", err)
|
ctx.ServerError("ChangeContent", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
23
services/issue/content.go
Normal file
23
services/issue/content.go
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// Copyright 2019 The Gitea Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package issue
|
||||||
|
|
||||||
|
import (
|
||||||
|
"code.gitea.io/gitea/models"
|
||||||
|
"code.gitea.io/gitea/modules/notification"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ChangeContent changes issue content, as the given user.
|
||||||
|
func ChangeContent(issue *models.Issue, doer *models.User, content string) (err error) {
|
||||||
|
oldContent := issue.Content
|
||||||
|
|
||||||
|
if err := issue.ChangeContent(doer, content); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
notification.NotifyIssueChangeContent(doer, issue, oldContent)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in a new issue