fix: reduce (#635)

* fix: management reduce optimization

* fix: reduce optimization

* fix: reduce optimization

* fix: merge master
This commit is contained in:
Fabi
2020-08-26 13:01:37 +02:00
committed by GitHub
parent 87aa97b9c7
commit 4af38b37a6
29 changed files with 184 additions and 63 deletions

View File

@@ -71,10 +71,10 @@ func (d *OrgDomain) processOrgDomain(event *models.Event) (err error) {
}
for _, existing := range existingDomains {
existing.Primary = false
err := d.view.PutOrgDomain(existing, 0)
if err != nil {
return err
}
}
err = d.view.PutOrgDomains(existingDomains, 0)
if err != nil {
return err
}
err = domain.AppendEvent(event)
case model.OrgDomainRemoved:

View File

@@ -99,11 +99,8 @@ func (m *OrgMember) processUser(event *models.Event) (err error) {
}
for _, member := range members {
m.fillUserData(member, user)
err = m.view.PutOrgMember(member, event.Sequence)
if err != nil {
return err
}
}
return m.view.PutOrgMembers(members, event.Sequence)
default:
return m.view.ProcessedOrgMemberSequence(event.Sequence)
}

View File

@@ -47,7 +47,7 @@ func (p *ProjectGrant) Reduce(event *models.Event) (err error) {
if err != nil {
return err
}
return p.updateExistingProjects(project)
return p.updateExistingProjects(project, event.Sequence)
case es_model.ProjectGrantAdded:
err = grantedProject.AppendEvent(event)
if err != nil {
@@ -106,21 +106,15 @@ func (p *ProjectGrant) getProject(projectID string) (*proj_model.Project, error)
return p.projectEvents.ProjectByID(context.Background(), projectID)
}
func (p *ProjectGrant) updateExistingProjects(project *view_model.ProjectView) error {
func (p *ProjectGrant) updateExistingProjects(project *view_model.ProjectView, sequence uint64) error {
projectGrants, err := p.view.ProjectGrantsByProjectID(project.ProjectID)
if err != nil {
logging.LogWithFields("SPOOL-los03", "id", project.ProjectID).WithError(err).Warn("could not update existing projects")
}
for _, existing := range projectGrants {
existing.Name = project.Name
err := p.view.PutProjectGrant(existing)
if err != nil {
logging.LogWithFields("SPOOL-sjwi3", "id", existing.ProjectID).WithError(err).Warn("could not update existing project")
return err
}
}
return p.view.ProcessedProjectGrantSequence(project.Sequence)
return p.view.PutProjectGrants(projectGrants, sequence)
}
func (p *ProjectGrant) OnError(event *models.Event, err error) error {

View File

@@ -101,11 +101,8 @@ func (p *ProjectGrantMember) processUser(event *models.Event) (err error) {
}
for _, member := range members {
p.fillUserData(member, user)
err = p.view.PutProjectGrantMember(member, event.Sequence)
if err != nil {
return err
}
}
return p.view.PutProjectGrantMembers(members, event.Sequence)
default:
return p.view.ProcessedProjectGrantMemberSequence(event.Sequence)
}

View File

@@ -101,11 +101,8 @@ func (p *ProjectMember) processUser(event *models.Event) (err error) {
}
for _, member := range members {
p.fillUserData(member, user)
err = p.view.PutProjectMember(member, event.Sequence)
if err != nil {
return err
}
}
return p.view.PutProjectMembers(members, event.Sequence)
default:
return p.view.ProcessedProjectMemberSequence(event.Sequence)
}

View File

@@ -106,11 +106,8 @@ func (u *UserGrant) processUser(event *models.Event) (err error) {
}
for _, grant := range grants {
u.fillUserData(grant, user)
err = u.view.PutUserGrant(grant, event.Sequence)
if err != nil {
return err
}
}
return u.view.PutUserGrants(grants, event.Sequence)
default:
return u.view.ProcessedUserGrantSequence(event.Sequence)
}
@@ -133,8 +130,8 @@ func (u *UserGrant) processProject(event *models.Event) (err error) {
}
for _, grant := range grants {
u.fillProjectData(grant, project)
return u.view.PutUserGrant(grant, event.Sequence)
}
return u.view.PutUserGrants(grants, event.Sequence)
default:
return u.view.ProcessedUserGrantSequence(event.Sequence)
}

View File

@@ -38,6 +38,14 @@ func (v *View) PutOrgDomain(org *model.OrgDomainView, sequence uint64) error {
return nil
}
func (v *View) PutOrgDomains(domains []*model.OrgDomainView, sequence uint64) error {
err := view.PutOrgDomains(v.Db, orgDomainTable, domains...)
if err != nil {
return err
}
return v.ProcessedUserSequence(sequence)
}
func (v *View) DeleteOrgDomain(orgID, domain string, eventSequence uint64) error {
err := view.DeleteOrgDomain(v.Db, orgDomainTable, orgID, domain)
if err != nil {

View File

@@ -23,8 +23,16 @@ func (v *View) OrgMembersByUserID(userID string) ([]*model.OrgMemberView, error)
return view.OrgMembersByUserID(v.Db, orgMemberTable, userID)
}
func (v *View) PutOrgMember(org *model.OrgMemberView, sequence uint64) error {
err := view.PutOrgMember(v.Db, orgMemberTable, org)
func (v *View) PutOrgMember(member *model.OrgMemberView, sequence uint64) error {
err := view.PutOrgMember(v.Db, orgMemberTable, member)
if err != nil {
return err
}
return v.ProcessedOrgMemberSequence(sequence)
}
func (v *View) PutOrgMembers(members []*model.OrgMemberView, sequence uint64) error {
err := view.PutOrgMembers(v.Db, orgMemberTable, members...)
if err != nil {
return err
}

View File

@@ -31,12 +31,20 @@ func (v *View) SearchProjectGrants(request *proj_model.ProjectGrantViewSearchReq
return view.SearchProjectGrants(v.Db, grantedProjectTable, request)
}
func (v *View) PutProjectGrant(project *model.ProjectGrantView) error {
err := view.PutProjectGrant(v.Db, grantedProjectTable, project)
func (v *View) PutProjectGrant(grant *model.ProjectGrantView) error {
err := view.PutProjectGrant(v.Db, grantedProjectTable, grant)
if err != nil {
return err
}
return v.ProcessedProjectGrantSequence(project.Sequence)
return v.ProcessedProjectGrantSequence(grant.Sequence)
}
func (v *View) PutProjectGrants(grants []*model.ProjectGrantView, sequence uint64) error {
err := view.PutProjectGrants(v.Db, grantedProjectTable, grants...)
if err != nil {
return err
}
return v.ProcessedProjectGrantSequence(sequence)
}
func (v *View) DeleteProjectGrant(grantID string, eventSequence uint64) error {

View File

@@ -27,8 +27,16 @@ func (v *View) ProjectGrantMembersByUserID(userID string) ([]*model.ProjectGrant
return view.ProjectGrantMembersByUserID(v.Db, projectGrantMemberTable, userID)
}
func (v *View) PutProjectGrantMember(project *model.ProjectGrantMemberView, sequence uint64) error {
err := view.PutProjectGrantMember(v.Db, projectGrantMemberTable, project)
func (v *View) PutProjectGrantMember(member *model.ProjectGrantMemberView, sequence uint64) error {
err := view.PutProjectGrantMember(v.Db, projectGrantMemberTable, member)
if err != nil {
return err
}
return v.ProcessedProjectGrantMemberSequence(sequence)
}
func (v *View) PutProjectGrantMembers(members []*model.ProjectGrantMemberView, sequence uint64) error {
err := view.PutProjectGrantMembers(v.Db, projectGrantMemberTable, members...)
if err != nil {
return err
}

View File

@@ -35,6 +35,14 @@ func (v *View) PutProjectMember(project *model.ProjectMemberView, sequence uint6
return v.ProcessedProjectMemberSequence(sequence)
}
func (v *View) PutProjectMembers(project []*model.ProjectMemberView, sequence uint64) error {
err := view.PutProjectMembers(v.Db, projectMemberTable, project...)
if err != nil {
return err
}
return v.ProcessedProjectMemberSequence(sequence)
}
func (v *View) DeleteProjectMember(projectID, userID string, eventSequence uint64) error {
err := view.DeleteProjectMember(v.Db, projectMemberTable, projectID, userID)
if err != nil {

View File

@@ -47,6 +47,14 @@ func (v *View) PutUserGrant(grant *model.UserGrantView, sequence uint64) error {
return v.ProcessedUserGrantSequence(sequence)
}
func (v *View) PutUserGrants(grants []*model.UserGrantView, sequence uint64) error {
err := view.PutUserGrants(v.Db, userGrantTable, grants...)
if err != nil {
return err
}
return v.ProcessedUserGrantSequence(sequence)
}
func (v *View) DeleteUserGrant(grantID string, eventSequence uint64) error {
err := view.DeleteUserGrant(v.Db, userGrantTable, grantID)
if err != nil {