package command import ( "github.com/caos/zitadel/internal/eventstore/v2" "github.com/caos/zitadel/internal/v2/repository/iam" ) type IAMIdentityProviderWriteModel struct { IdentityProviderWriteModel } func NewIAMIdentityProviderWriteModel(iamID, idpConfigID string) *IAMIdentityProviderWriteModel { return &IAMIdentityProviderWriteModel{ IdentityProviderWriteModel: IdentityProviderWriteModel{ WriteModel: eventstore.WriteModel{ AggregateID: iamID, }, IDPConfigID: idpConfigID, }, } } func (wm *IAMIdentityProviderWriteModel) AppendEvents(events ...eventstore.EventReader) { for _, event := range events { switch e := event.(type) { case *iam.IdentityProviderAddedEvent: if e.IDPConfigID != wm.IDPConfigID { continue } wm.IdentityProviderWriteModel.AppendEvents(&e.IdentityProviderAddedEvent) } } } func (wm *IAMIdentityProviderWriteModel) Reduce() error { return wm.IdentityProviderWriteModel.Reduce() } func (wm *IAMIdentityProviderWriteModel) Query() *eventstore.SearchQueryBuilder { return eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent, iam.AggregateType). AggregateIDs(wm.AggregateID) }