mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-03-11 17:48:44 -05:00
fix(events): defer event dispatch for project operations
Convert events.Dispatch to events.DispatchOnCommit in project CRUD, project-user sharing, and project-team sharing. Refs #2315
This commit is contained in:
@@ -918,10 +918,11 @@ func CreateProject(s *xorm.Session, project *Project, auth web.Auth, createBackl
|
||||
}
|
||||
}
|
||||
|
||||
return events.Dispatch(&ProjectCreatedEvent{
|
||||
events.DispatchOnCommit(s, &ProjectCreatedEvent{
|
||||
Project: project,
|
||||
Doer: doer,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateNewProjectForUser creates a new inbox project for a user. To prevent import cycles, we can't do that
|
||||
@@ -1018,13 +1019,10 @@ func UpdateProject(s *xorm.Session, project *Project, auth web.Auth, updateProje
|
||||
return err
|
||||
}
|
||||
|
||||
err = events.Dispatch(&ProjectUpdatedEvent{
|
||||
events.DispatchOnCommit(s, &ProjectUpdatedEvent{
|
||||
Project: project,
|
||||
Doer: auth,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
l, err := GetProjectSimpleByID(s, project.ID)
|
||||
if err != nil {
|
||||
@@ -1252,13 +1250,10 @@ func (p *Project) Delete(s *xorm.Session, a web.Auth) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
err = events.Dispatch(&ProjectDeletedEvent{
|
||||
events.DispatchOnCommit(s, &ProjectDeletedEvent{
|
||||
Project: fullProject,
|
||||
Doer: a,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
childProjects := []*Project{}
|
||||
err = s.Where("parent_project_id = ?", fullProject.ID).Find(&childProjects)
|
||||
|
||||
@@ -109,14 +109,11 @@ func (tl *TeamProject) Create(s *xorm.Session, a web.Auth) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
err = events.Dispatch(&ProjectSharedWithTeamEvent{
|
||||
events.DispatchOnCommit(s, &ProjectSharedWithTeamEvent{
|
||||
Project: l,
|
||||
Team: team,
|
||||
Doer: a,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = updateProjectLastUpdated(s, l)
|
||||
return
|
||||
|
||||
@@ -115,14 +115,11 @@ func (lu *ProjectUser) Create(s *xorm.Session, a web.Auth) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
err = events.Dispatch(&ProjectSharedWithUserEvent{
|
||||
events.DispatchOnCommit(s, &ProjectSharedWithUserEvent{
|
||||
Project: l,
|
||||
User: u,
|
||||
Doer: a,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = updateProjectLastUpdated(s, l)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user