Add task comment created event

This commit is contained in:
kolaente 2021-01-31 21:51:06 +01:00
parent 73bed1ce31
commit d29beac898
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 30 additions and 1 deletions

View File

@ -59,3 +59,17 @@ func (t *TaskAssigneeCreatedEvent) TopicName() string {
func (t *TaskAssigneeCreatedEvent) Message() interface{} {
return t
}
type TaskCommentCreatedEvent struct {
Task *Task
Comment *TaskComment
Doer *user.User
}
func (t *TaskCommentCreatedEvent) TopicName() string {
return "task.comment.created"
}
func (t *TaskCommentCreatedEvent) Message() interface{} {
return t
}

View File

@ -17,6 +17,7 @@
package models
import (
"code.vikunja.io/api/pkg/events"
"time"
"xorm.io/xorm"
@ -60,7 +61,7 @@ func (tc *TaskComment) TableName() string {
// @Router /tasks/{taskID}/comments [put]
func (tc *TaskComment) Create(s *xorm.Session, a web.Auth) (err error) {
// Check if the task exists
_, err = GetTaskSimple(s, &Task{ID: tc.TaskID})
task, err := GetTaskSimple(s, &Task{ID: tc.TaskID})
if err != nil {
return err
}
@ -70,6 +71,20 @@ func (tc *TaskComment) Create(s *xorm.Session, a web.Auth) (err error) {
if err != nil {
return
}
doer, err := user.GetFromAuth(a)
if err != nil {
return err
}
err = events.Publish(&TaskCommentCreatedEvent{
Task: &task,
Comment: tc,
Doer: doer,
})
if err != nil {
return err
}
tc.Author, err = user.GetUserByID(s, a.GetID())
return
}