From 3f4fda1548327029202832b15b2ee53ae88ca2bf Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 31 Jan 2021 22:06:23 +0100 Subject: [PATCH] Add list shared with user event --- pkg/models/events.go | 14 ++++++++++++++ pkg/models/list_users.go | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pkg/models/events.go b/pkg/models/events.go index 73a7cd21c..521254da8 100644 --- a/pkg/models/events.go +++ b/pkg/models/events.go @@ -105,3 +105,17 @@ type ListUpdatedEvent struct { func (l *ListUpdatedEvent) TopicName() string { return "list.updated" } + +//////////////////// +// Sharing Events // +//////////////////// + +type ListSharedWithUserEvent struct { + List *List + User *user.User + Doer *user.User +} + +func (l *ListSharedWithUserEvent) TopicName() string { + return "list.shared.user" +} diff --git a/pkg/models/list_users.go b/pkg/models/list_users.go index 01737b2d3..351748954 100644 --- a/pkg/models/list_users.go +++ b/pkg/models/list_users.go @@ -17,6 +17,7 @@ package models import ( + "code.vikunja.io/api/pkg/events" "time" "code.vikunja.io/api/pkg/user" @@ -112,6 +113,19 @@ func (lu *ListUser) Create(s *xorm.Session, a web.Auth) (err error) { return err } + doer, err := user.GetFromAuth(a) + if err != nil { + return err + } + err = events.Publish(&ListSharedWithUserEvent{ + List: l, + User: u, + Doer: doer, + }) + if err != nil { + return err + } + err = updateListLastUpdated(s, l) return }