mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-04-30 08:25:58 -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,
|
Project: project,
|
||||||
Doer: doer,
|
Doer: doer,
|
||||||
})
|
})
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateNewProjectForUser creates a new inbox project for a user. To prevent import cycles, we can't do that
|
// 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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = events.Dispatch(&ProjectUpdatedEvent{
|
events.DispatchOnCommit(s, &ProjectUpdatedEvent{
|
||||||
Project: project,
|
Project: project,
|
||||||
Doer: auth,
|
Doer: auth,
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
l, err := GetProjectSimpleByID(s, project.ID)
|
l, err := GetProjectSimpleByID(s, project.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -1252,13 +1250,10 @@ func (p *Project) Delete(s *xorm.Session, a web.Auth) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = events.Dispatch(&ProjectDeletedEvent{
|
events.DispatchOnCommit(s, &ProjectDeletedEvent{
|
||||||
Project: fullProject,
|
Project: fullProject,
|
||||||
Doer: a,
|
Doer: a,
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
childProjects := []*Project{}
|
childProjects := []*Project{}
|
||||||
err = s.Where("parent_project_id = ?", fullProject.ID).Find(&childProjects)
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = events.Dispatch(&ProjectSharedWithTeamEvent{
|
events.DispatchOnCommit(s, &ProjectSharedWithTeamEvent{
|
||||||
Project: l,
|
Project: l,
|
||||||
Team: team,
|
Team: team,
|
||||||
Doer: a,
|
Doer: a,
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = updateProjectLastUpdated(s, l)
|
err = updateProjectLastUpdated(s, l)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -115,14 +115,11 @@ func (lu *ProjectUser) Create(s *xorm.Session, a web.Auth) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = events.Dispatch(&ProjectSharedWithUserEvent{
|
events.DispatchOnCommit(s, &ProjectSharedWithUserEvent{
|
||||||
Project: l,
|
Project: l,
|
||||||
User: u,
|
User: u,
|
||||||
Doer: a,
|
Doer: a,
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = updateProjectLastUpdated(s, l)
|
err = updateProjectLastUpdated(s, l)
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user