mirror of
https://github.com/zitadel/zitadel.git
synced 2025-10-15 06:51:18 +00:00
try with writemodel
This commit is contained in:
@@ -3,6 +3,7 @@ package iam
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/caos/logging"
|
||||
"github.com/caos/zitadel/internal/eventstore/v2"
|
||||
)
|
||||
|
||||
@@ -29,7 +30,13 @@ func NewAggregate(
|
||||
) *Aggregate {
|
||||
|
||||
return &Aggregate{
|
||||
Aggregate: *eventstore.NewAggregate(id, AggregateType, resourceOwner, AggregateVersion, previousSequence),
|
||||
Aggregate: *eventstore.NewAggregate(
|
||||
id,
|
||||
AggregateType,
|
||||
resourceOwner,
|
||||
AggregateVersion,
|
||||
previousSequence,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,8 +53,14 @@ func (a *Aggregate) PushMemberAdded(ctx context.Context, userID string, roles ..
|
||||
return a
|
||||
}
|
||||
|
||||
func (a *Aggregate) PushMemberChanged(ctx context.Context, userID string, roles ...string) *Aggregate {
|
||||
a.Aggregate = *a.PushEvents(NewMemberChangedEvent(ctx, userID, roles...))
|
||||
func (a *Aggregate) PushMemberChanged(ctx context.Context, current, changed *MemberWriteModel) *Aggregate {
|
||||
e, err := NewMemberChangedEvent(ctx, current, changed)
|
||||
if err != nil {
|
||||
logging.Log("IAM-KH21C").OnError(err).Warn("unable to push member changed")
|
||||
return a
|
||||
}
|
||||
|
||||
a.Aggregate = *a.PushEvents(e)
|
||||
return a
|
||||
}
|
||||
|
||||
|
@@ -13,7 +13,13 @@ var (
|
||||
MemberRemovedEventType = iamEventTypePrefix + member.RemovedEventType
|
||||
)
|
||||
|
||||
type MemberReadModel member.ReadModel
|
||||
type MemberWriteModel struct {
|
||||
member.WriteModel
|
||||
}
|
||||
|
||||
type MemberReadModel struct {
|
||||
member.ReadModel
|
||||
}
|
||||
|
||||
func (rm *MemberReadModel) AppendEvents(events ...eventstore.EventReader) (err error) {
|
||||
for _, event := range events {
|
||||
@@ -60,20 +66,25 @@ func NewMemberAddedEvent(
|
||||
|
||||
func NewMemberChangedEvent(
|
||||
ctx context.Context,
|
||||
userID string,
|
||||
roles ...string,
|
||||
) *MemberChangedEvent {
|
||||
current,
|
||||
changed *MemberWriteModel,
|
||||
) (*MemberChangedEvent, error) {
|
||||
|
||||
m, err := member.NewChangedEvent(
|
||||
eventstore.NewBaseEventForPush(
|
||||
ctx,
|
||||
MemberChangedEventType,
|
||||
),
|
||||
¤t.WriteModel,
|
||||
&changed.WriteModel,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &MemberChangedEvent{
|
||||
ChangedEvent: *member.NewChangedEvent(
|
||||
eventstore.NewBaseEventForPush(
|
||||
ctx,
|
||||
MemberChangedEventType,
|
||||
),
|
||||
userID,
|
||||
roles...,
|
||||
),
|
||||
}
|
||||
ChangedEvent: *m,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func NewMemberRemovedEvent(
|
||||
|
Reference in New Issue
Block a user