diff --git a/pkg/models/events.go b/pkg/models/events.go index 283d404b6..0c8c89905 100644 --- a/pkg/models/events.go +++ b/pkg/models/events.go @@ -83,3 +83,16 @@ type NamespaceUpdatedEvent struct { func (n *NamespaceUpdatedEvent) TopicName() string { return "namespace.updated" } + +///////////////// +// List Events // +///////////////// + +type ListCreatedEvent struct { + List *List + Doer *user.User +} + +func (l *ListCreatedEvent) TopicName() string { + return "list.created" +} diff --git a/pkg/models/list.go b/pkg/models/list.go index 72d3c7588..01a27f376 100644 --- a/pkg/models/list.go +++ b/pkg/models/list.go @@ -17,6 +17,7 @@ package models import ( + "code.vikunja.io/api/pkg/events" "strconv" "strings" "time" @@ -599,7 +600,15 @@ func (l *List) Create(s *xorm.Session, a web.Auth) (err error) { ListID: l.ID, Title: "New Bucket", } - return b.Create(s, a) + err = b.Create(s, a) + if err != nil { + return + } + + return events.Publish(&ListCreatedEvent{ + List: l, + Doer: doer, + }) } // Delete implements the delete method of CRUDable diff --git a/pkg/models/namespace.go b/pkg/models/namespace.go index a55ca14cc..2a9fc97b1 100644 --- a/pkg/models/namespace.go +++ b/pkg/models/namespace.go @@ -479,13 +479,9 @@ func (n *Namespace) Create(s *xorm.Session, a web.Auth) (err error) { return err } - doer, err := user.GetFromAuth(a) - if err != nil { - return err - } err = events.Publish(&NamespaceCreatedEvent{ Namespace: n, - Doer: doer, + Doer: n.Owner, }) if err != nil { return err