Fabi 31ea9d1acd
feat: user events (#1062)
* feat: user new eventstore

* feat: rename query builder

* feat: human events

* feat: human events

* feat: events

* feat: phone events

* feat: phone events

* feat: profile, address events

* feat: mfa, otp

* feat: webauthn events

* feat: webauthn events

* feat: webauthn events

* feat: enums

* feat: new events

* feat: user events

* feat: domain events

* feat: all v2 events

* feat: all v1 events

* feat: pkg structure

* feat: change events

* feat: better naming

* feat: better naming
2020-12-10 16:18:52 +01:00

108 lines
2.3 KiB
Go

package machine
import (
"context"
"encoding/json"
"github.com/caos/zitadel/internal/errors"
"github.com/caos/zitadel/internal/eventstore/v2"
"github.com/caos/zitadel/internal/eventstore/v2/repository"
)
const (
machineEventPrefix = eventstore.EventType("user.machine.")
MachineAddedEventType = machineEventPrefix + "added"
MachineChangedEventType = machineEventPrefix + "changed"
)
type AddedEvent struct {
eventstore.BaseEvent `json:"-"`
UserName string `json:"userName"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
}
func (e *AddedEvent) CheckPrevious() bool {
return false
}
func (e *AddedEvent) Data() interface{} {
return e
}
func NewAddedEvent(
ctx context.Context,
userName,
name,
description string,
) *AddedEvent {
return &AddedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
ctx,
MachineAddedEventType,
),
UserName: userName,
Name: name,
Description: description,
}
}
func AddedEventMapper(event *repository.Event) (eventstore.EventReader, error) {
machineAdded := &AddedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, machineAdded)
if err != nil {
return nil, errors.ThrowInternal(err, "USER-tMv9s", "unable to unmarshal machine added")
}
return machineAdded, nil
}
type ChangedEvent struct {
eventstore.BaseEvent `json:"-"`
UserName string `json:"userName"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
}
func (e *ChangedEvent) CheckPrevious() bool {
return false
}
func (e *ChangedEvent) Data() interface{} {
return e
}
func NewChangedEvent(
ctx context.Context,
userName,
name,
description string,
) *ChangedEvent {
return &ChangedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
ctx,
MachineChangedEventType,
),
UserName: userName,
Name: name,
Description: description,
}
}
func ChangedEventMapper(event *repository.Event) (eventstore.EventReader, error) {
machineChanged := &ChangedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, machineChanged)
if err != nil {
return nil, errors.ThrowInternal(err, "USER-4M9ds", "unable to unmarshal machine changed")
}
return machineChanged, nil
}