fix: Fix project roles/grants projection (#2491)

* fix: project role projections reduce change event

* fix: project grant projections reduce change event

* fix: project grant projections reduce change event

* fix: add project removed event
This commit is contained in:
Fabi
2021-10-08 16:17:12 +02:00
committed by GitHub
parent 1ca2d8adde
commit 29c8fa8bde
3 changed files with 46 additions and 32 deletions

View File

@@ -56,6 +56,10 @@ func (p *ProjectGrantProjection) reducers() []handler.AggregateReducer {
Event: project.GrantRemovedType,
Reduce: p.reduceProjectGrantRemoved,
},
{
Event: project.ProjectRemovedType,
Reduce: p.reduceProjectRemoved,
},
},
},
}
@@ -103,10 +107,6 @@ func (p *ProjectGrantProjection) reduceProjectGrantChanged(event eventstore.Even
logging.LogWithFields("HANDL-M00fH", "seq", event.Sequence(), "expectedType", project.GrantChangedType).Error("was not an event")
return nil, errors.ThrowInvalidArgument(nil, "HANDL-g0fg4", "reduce.wrong.event.type")
}
if e.RoleKeys == nil {
return crdb.NewNoOpStatement(e), nil
}
return crdb.NewUpdateStatement(
e,
[]handler.Column{
@@ -127,10 +127,6 @@ func (p *ProjectGrantProjection) reduceProjectGrantCascadeChanged(event eventsto
logging.LogWithFields("HANDL-K0fwR", "seq", event.Sequence(), "expectedType", project.GrantCascadeChangedType).Error("was not an event")
return nil, errors.ThrowInvalidArgument(nil, "HANDL-ll9Ts", "reduce.wrong.event.type")
}
if e.RoleKeys == nil {
return crdb.NewNoOpStatement(e), nil
}
return crdb.NewUpdateStatement(
e,
[]handler.Column{
@@ -199,3 +195,17 @@ func (p *ProjectGrantProjection) reduceProjectGrantRemoved(event eventstore.Even
},
), nil
}
func (p *ProjectGrantProjection) reduceProjectRemoved(event eventstore.EventReader) (*handler.Statement, error) {
e, ok := event.(*project.ProjectRemovedEvent)
if !ok {
logging.LogWithFields("HANDL-Ms0fe", "seq", event.Sequence(), "expectedType", project.ProjectRemovedType).Error("was not an event")
return nil, errors.ThrowInvalidArgument(nil, "HANDL-gn9rw", "reduce.wrong.event.type")
}
return crdb.NewDeleteStatement(
e,
[]handler.Condition{
handler.NewCond(ProjectGrantColumnProjectID, e.Aggregate().ID),
},
), nil
}