Teams: Allow Services to register deletes (#76325)
* add team RegisterDelete * fix-docs
This commit is contained in:
@@ -30,11 +30,13 @@ type store interface {
|
||||
RemoveMember(ctx context.Context, cmd *team.RemoveTeamMemberCommand) error
|
||||
GetMemberships(ctx context.Context, orgID, userID int64, external bool) ([]*team.TeamMemberDTO, error)
|
||||
GetMembers(ctx context.Context, query *team.GetTeamMembersQuery) ([]*team.TeamMemberDTO, error)
|
||||
RegisterDelete(query string)
|
||||
}
|
||||
|
||||
type xormStore struct {
|
||||
db db.DB
|
||||
cfg *setting.Cfg
|
||||
db db.DB
|
||||
cfg *setting.Cfg
|
||||
deletes []string
|
||||
}
|
||||
|
||||
func getFilteredUsers(signedInUser identity.Requester, hiddenUsers map[string]struct{}) []string {
|
||||
@@ -142,6 +144,8 @@ func (ss *xormStore) Delete(ctx context.Context, cmd *team.DeleteTeamCommand) er
|
||||
"DELETE FROM team_role WHERE org_id=? and team_id = ?",
|
||||
}
|
||||
|
||||
deletes = append(deletes, ss.deletes...)
|
||||
|
||||
for _, sql := range deletes {
|
||||
_, err := sess.Exec(sql, cmd.OrgID, cmd.ID)
|
||||
if err != nil {
|
||||
@@ -567,3 +571,8 @@ func (ss *xormStore) getTeamMembers(ctx context.Context, query *team.GetTeamMemb
|
||||
}
|
||||
return queryResult, nil
|
||||
}
|
||||
|
||||
// RegisterDelete registers a delete query to be executed when the transaction is committed
|
||||
func (ss *xormStore) RegisterDelete(query string) {
|
||||
ss.deletes = append(ss.deletes, query)
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ type Service struct {
|
||||
}
|
||||
|
||||
func ProvideService(db db.DB, cfg *setting.Cfg) team.Service {
|
||||
return &Service{store: &xormStore{db: db, cfg: cfg}}
|
||||
return &Service{store: &xormStore{db: db, cfg: cfg, deletes: []string{}}}
|
||||
}
|
||||
|
||||
func (s *Service) CreateTeam(name, email string, orgID int64) (team.Team, error) {
|
||||
@@ -68,3 +68,7 @@ func (s *Service) GetUserTeamMemberships(ctx context.Context, orgID, userID int6
|
||||
func (s *Service) GetTeamMembers(ctx context.Context, query *team.GetTeamMembersQuery) ([]*team.TeamMemberDTO, error) {
|
||||
return s.store.GetMembers(ctx, query)
|
||||
}
|
||||
|
||||
func (s *Service) RegisterDelete(query string) {
|
||||
s.store.RegisterDelete(query)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user