Add events #777

Merged
konrad merged 47 commits from feature/events into master 2021-02-02 22:48:38 +00:00
2 changed files with 30 additions and 1 deletions
Showing only changes of commit d29beac898 - Show all commits

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
}