Fix dispatching events with doers

This commit is contained in:
kolaente 2021-02-13 22:43:17 +01:00
parent d6918d634f
commit eac30f8e3d
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
7 changed files with 26 additions and 41 deletions

View File

@ -28,7 +28,7 @@ import (
// TaskCreatedEvent represents an event where a task has been created
type TaskCreatedEvent struct {
Task *Task
Doer web.Auth
Doer *user.User
}
// Name defines the name for TaskCreatedEvent
@ -39,7 +39,7 @@ func (t *TaskCreatedEvent) Name() string {
// TaskUpdatedEvent represents an event where a task has been updated
type TaskUpdatedEvent struct {
Task *Task
Doer web.Auth
Doer *user.User
}
// Name defines the name for TaskUpdatedEvent
@ -50,7 +50,7 @@ func (t *TaskUpdatedEvent) Name() string {
// TaskDeletedEvent represents a TaskDeletedEvent event
type TaskDeletedEvent struct {
Task *Task
Doer web.Auth
Doer *user.User
}
// Name defines the name for TaskDeletedEvent
@ -62,7 +62,7 @@ func (t *TaskDeletedEvent) Name() string {
type TaskAssigneeCreatedEvent struct {
Task *Task
Assignee *user.User
Doer web.Auth
Doer *user.User
}
// Name defines the name for TaskAssigneeCreatedEvent
@ -74,7 +74,7 @@ func (t *TaskAssigneeCreatedEvent) Name() string {
type TaskCommentCreatedEvent struct {
Task *Task
Comment *TaskComment
Doer web.Auth
Doer *user.User
}
// Name defines the name for TaskCommentCreatedEvent
@ -126,7 +126,7 @@ func (t *NamespaceDeletedEvent) Name() string {
// ListCreatedEvent represents an event where a list has been created
type ListCreatedEvent struct {
List *List
Doer web.Auth
Doer *user.User
}
// Name defines the name for ListCreatedEvent

View File

@ -627,7 +627,7 @@ func (l *List) Create(s *xorm.Session, a web.Auth) (err error) {
return events.Dispatch(&ListCreatedEvent{
List: l,
Doer: a,
Doer: doer,
})
}

View File

@ -25,7 +25,6 @@ import (
"code.vikunja.io/api/pkg/metrics"
"code.vikunja.io/api/pkg/modules/keyvalue"
"code.vikunja.io/api/pkg/notifications"
"code.vikunja.io/api/pkg/user"
"github.com/ThreeDotsLabs/watermill/message"
)
@ -93,11 +92,6 @@ func (s *SendTaskCommentNotification) Handle(payload message.Payload) (err error
return err
}
doer, is := event.Doer.(*user.User)
if !is {
return
}
sess := db.NewSession()
defer sess.Close()
@ -109,12 +103,12 @@ func (s *SendTaskCommentNotification) Handle(payload message.Payload) (err error
log.Debugf("Sending task comment notifications to %d subscribers for task %d", len(subscribers), event.Task.ID)
for _, subscriber := range subscribers {
if subscriber.UserID == doer.ID {
if subscriber.UserID == event.Doer.ID {
continue
}
n := &TaskCommentNotification{
Doer: doer,
Doer: event.Doer,
Task: event.Task,
Comment: event.Comment,
}
@ -144,11 +138,6 @@ func (s *SendTaskAssignedNotification) Handle(payload message.Payload) (err erro
return err
}
doer, is := event.Doer.(*user.User)
if !is {
return
}
sess := db.NewSession()
defer sess.Close()
@ -160,12 +149,12 @@ func (s *SendTaskAssignedNotification) Handle(payload message.Payload) (err erro
log.Debugf("Sending task assigned notifications to %d subscribers for task %d", len(subscribers), event.Task.ID)
for _, subscriber := range subscribers {
if subscriber.UserID == doer.ID {
if subscriber.UserID == event.Doer.ID {
continue
}
n := &TaskAssignedNotification{
Doer: doer,
Doer: event.Doer,
Task: event.Task,
Assignee: event.Assignee,
}
@ -195,11 +184,6 @@ func (s *SendTaskDeletedNotification) Handle(payload message.Payload) (err error
return err
}
doer, is := event.Doer.(*user.User)
if !is {
return
}
sess := db.NewSession()
defer sess.Close()
@ -211,12 +195,12 @@ func (s *SendTaskDeletedNotification) Handle(payload message.Payload) (err error
log.Debugf("Sending task deleted notifications to %d subscribers for task %d", len(subscribers), event.Task.ID)
for _, subscriber := range subscribers {
if subscriber.UserID == doer.ID {
if subscriber.UserID == event.Doer.ID {
continue
}
n := &TaskDeletedNotification{
Doer: doer,
Doer: event.Doer,
Task: event.Task,
}
err = notifications.Notify(subscriber.User, n)
@ -270,11 +254,6 @@ func (s *SendListCreatedNotification) Handle(payload message.Payload) (err error
return err
}
doer, is := event.Doer.(*user.User)
if !is {
return
}
sess := db.NewSession()
defer sess.Close()
@ -286,12 +265,12 @@ func (s *SendListCreatedNotification) Handle(payload message.Payload) (err error
log.Debugf("Sending list created notifications to %d subscribers for list %d", len(subscribers), event.List.ID)
for _, subscriber := range subscribers {
if subscriber.UserID == doer.ID {
if subscriber.UserID == event.Doer.ID {
continue
}
n := &ListCreatedNotification{
Doer: doer,
Doer: event.Doer,
List: event.List,
}
err = notifications.Notify(subscriber.User, n)

View File

@ -59,6 +59,7 @@ type TaskCommentNotification struct {
func (n *TaskCommentNotification) ToMail() *notifications.Mail {
mail := notifications.NewMail().
From(n.Doer.GetName() + " via Vikunja <" + config.MailerFromEmail.GetString() + ">").
Subject("Re: " + n.Task.Title)
lines := bufio.NewScanner(strings.NewReader(n.Comment.Comment))

View File

@ -225,10 +225,11 @@ func (t *Task) addNewAssigneeByID(s *xorm.Session, newAssigneeID int64, list *Li
return err
}
doer, _ := user.GetFromAuth(auth)
err = events.Dispatch(&TaskAssigneeCreatedEvent{
Task: t,
Assignee: newAssignee,
Doer: auth,
Doer: doer,
})
if err != nil {
return err

View File

@ -73,10 +73,11 @@ func (tc *TaskComment) Create(s *xorm.Session, a web.Auth) (err error) {
return
}
doer, _ := user.GetFromAuth(a)
err = events.Dispatch(&TaskCommentCreatedEvent{
Task: &task,
Comment: tc,
Doer: a,
Doer: doer,
})
if err != nil {
return err

View File

@ -849,9 +849,10 @@ func createTask(s *xorm.Session, t *Task, a web.Auth, updateAssignees bool) (err
t.setIdentifier(l)
doer, _ := user.GetFromAuth(a)
err = events.Dispatch(&TaskCreatedEvent{
Task: t,
Doer: a,
Doer: doer,
})
if err != nil {
return err
@ -1057,9 +1058,10 @@ func (t *Task) Update(s *xorm.Session, a web.Auth) (err error) {
}
t.Updated = nt.Updated
doer, _ := user.GetFromAuth(a)
err = events.Dispatch(&TaskUpdatedEvent{
Task: t,
Doer: a,
Doer: doer,
})
if err != nil {
return err
@ -1214,9 +1216,10 @@ func (t *Task) Delete(s *xorm.Session, a web.Auth) (err error) {
return err
}
doer, _ := user.GetFromAuth(a)
err = events.Dispatch(&TaskDeletedEvent{
Task: t,
Doer: a,
Doer: doer,
})
if err != nil {
return