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 { func (n *NamespaceSharedWithTeamEvent) TopicName() string {
return "namespace.shared.team" 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 package models
import ( import (
"code.vikunja.io/api/pkg/events"
user2 "code.vikunja.io/api/pkg/user" user2 "code.vikunja.io/api/pkg/user"
"code.vikunja.io/web" "code.vikunja.io/web"
"xorm.io/xorm" "xorm.io/xorm"
@ -39,9 +40,9 @@ import (
func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) { func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) {
// Check if the team extst // Check if the team extst
_, err = GetTeamByID(s, tm.TeamID) team, err := GetTeamByID(s, tm.TeamID)
if err != nil { if err != nil {
return return err
} }
// Check if the user exists // Check if the user exists
@ -64,7 +65,19 @@ func (tm *TeamMember) Create(s *xorm.Session, a web.Auth) (err error) {
// Insert the user // Insert the user
_, err = s.Insert(tm) _, 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 // Delete deletes a user from a team