Refactor notification for indexer (#5111)
* notification for indexer * use NullNotifier as parent struct
This commit is contained in:
parent
477a80f658
commit
82e08a3364
8 changed files with 75 additions and 15 deletions
62
modules/notification/indexer/indexer.go
Normal file
62
modules/notification/indexer/indexer.go
Normal file
|
@ -0,0 +1,62 @@
|
|||
// 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 indexer
|
||||
|
||||
import (
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/notification/base"
|
||||
)
|
||||
|
||||
type indexerNotifier struct {
|
||||
base.NullNotifier
|
||||
}
|
||||
|
||||
var (
|
||||
_ base.Notifier = &indexerNotifier{}
|
||||
)
|
||||
|
||||
// NewNotifier create a new indexerNotifier notifier
|
||||
func NewNotifier() base.Notifier {
|
||||
return &indexerNotifier{}
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyCreateIssueComment(doer *models.User, repo *models.Repository,
|
||||
issue *models.Issue, comment *models.Comment) {
|
||||
if comment.Type == models.CommentTypeComment {
|
||||
models.UpdateIssueIndexer(issue.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyNewIssue(issue *models.Issue) {
|
||||
models.UpdateIssueIndexer(issue.ID)
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyNewPullRequest(pr *models.PullRequest) {
|
||||
models.UpdateIssueIndexer(pr.Issue.ID)
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyUpdateComment(doer *models.User, c *models.Comment, oldContent string) {
|
||||
if c.Type == models.CommentTypeComment {
|
||||
models.UpdateIssueIndexer(c.IssueID)
|
||||
}
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyDeleteComment(doer *models.User, comment *models.Comment) {
|
||||
if comment.Type == models.CommentTypeComment {
|
||||
models.UpdateIssueIndexer(comment.IssueID)
|
||||
}
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyDeleteRepository(doer *models.User, repo *models.Repository) {
|
||||
models.DeleteRepoFromIndexer(repo)
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyIssueChangeContent(doer *models.User, issue *models.Issue, oldContent string) {
|
||||
models.UpdateIssueIndexer(issue.ID)
|
||||
}
|
||||
|
||||
func (r *indexerNotifier) NotifyIssueChangeTitle(doer *models.User, issue *models.Issue, oldTitle string) {
|
||||
models.UpdateIssueIndexer(issue.ID)
|
||||
}
|
|
@ -8,6 +8,7 @@ import (
|
|||
"code.gitea.io/git"
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/notification/base"
|
||||
"code.gitea.io/gitea/modules/notification/indexer"
|
||||
"code.gitea.io/gitea/modules/notification/mail"
|
||||
"code.gitea.io/gitea/modules/notification/ui"
|
||||
)
|
||||
|
@ -25,6 +26,7 @@ func RegisterNotifier(notifier base.Notifier) {
|
|||
func init() {
|
||||
RegisterNotifier(ui.NewNotifier())
|
||||
RegisterNotifier(mail.NewNotifier())
|
||||
RegisterNotifier(indexer.NewNotifier())
|
||||
}
|
||||
|
||||
// NotifyCreateIssueComment notifies issue comment related message to notifiers
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue