mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 00:13:39 +00:00 
			
		
		
		
	Move issue change content from models to service (#8711)
* Move issue change content from models to service * fix lint
This commit is contained in:
		@@ -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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user