Add events #777
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue