Add team member added event

This commit is contained in:
kolaente 2021-01-31 22:23:58 +01:00
parent 405f3771b1
commit 51024a595d
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 30 additions and 3 deletions

View File

@ -149,3 +149,17 @@ type NamespaceSharedWithTeamEvent struct {
func (n *NamespaceSharedWithTeamEvent) TopicName() string {
return "namespace.shared.team"
}
/////////////////
// Team Events //
/////////////////
type TeamMemberAddedEvent struct {
Team *Team
Member *user.User
Doer *user.User
}
func (t *TeamMemberAddedEvent) TopicName() string {
return "team.member.added"
}

View File

@ -17,6 +17,7 @@
package models
import (
"code.vikunja.io/api/pkg/events"
user2 "code.vikunja.io/api/pkg/user"
"code.vikunja.io/web"
"xorm.io/xorm"
@ -39,9 +40,9 @@ import (
func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) {
// Check if the team extst
_, err = GetTeamByID(s, tm.TeamID)
team, err := GetTeamByID(s, tm.TeamID)
if err != nil {
return
return err
}
// Check if the user exists
@ -64,7 +65,19 @@ func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) {
// Insert the user
_, err = s.Insert(tm)
return
if err != nil {
return err
}
doer, err := user2.GetFromAuth(a)
if err != nil {
return err
}
return events.Publish(&TeamMemberAddedEvent{
Team: team,
Member: user,
Doer: doer,
})
}
// Delete deletes a user from a team