Fix dispatching events with doers
This commit is contained in:
parent
d6918d634f
commit
eac30f8e3d
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue