stop tracking events

This commit is contained in:
Elio Bischof
2023-06-21 11:40:16 +02:00
parent 35aa43a4ac
commit 1b5f5e9e62
34 changed files with 20731 additions and 153 deletions

View File

@@ -1,8 +1,11 @@
//go:
package milestone
import (
"context"
"encoding/json"
"time"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore"
@@ -10,57 +13,16 @@ import (
)
const (
eventTypePrefix = eventstore.EventType("milestone.")
ReachedEventType = eventTypePrefix + "reached"
PushedEventType = eventTypePrefix + "pushed"
eventTypePrefix = eventstore.EventType("milestone.")
PushedEventType = eventTypePrefix + "pushed"
)
type ReachedEvent struct {
eventstore.BaseEvent `json:"-"`
MilestoneEvent SerializableEvent `json:"milestoneEvent"`
}
func (n *ReachedEvent) Data() interface{} {
return n
}
func (n *ReachedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
return nil
}
func NewReachedEvent(
ctx context.Context,
newAggregateID string,
milestoneEvent eventstore.BaseEvent,
) *ReachedEvent {
triggeringEventsAggregate := milestoneEvent.Aggregate()
return &ReachedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
ctx,
&newAggregate(newAggregateID, triggeringEventsAggregate.InstanceID, triggeringEventsAggregate.ResourceOwner).Aggregate,
ReachedEventType,
),
MilestoneEvent: newSerializableEvent(milestoneEvent),
}
}
func ReachedEventMapper(event *repository.Event) (eventstore.Event, error) {
e := &ReachedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
if err != nil {
return nil, errors.ThrowInternal(err, "QUOTA-k56rT", "unable to unmarshal milestone reached")
}
return e, nil
}
type PushedEvent struct {
eventstore.BaseEvent `json:"-"`
ReachedEventSequence uint64 `json:"reachedEventSequence"`
Endpoints []string `json:"endpoints"`
Milestone Milestone `json:"milestone"`
Reached time.Time `json:"reached"`
Endpoints []string `json:"endpoints"`
PrimaryDomain string `json:"primaryDomain"`
}
func (e *PushedEvent) Data() interface{} {
@@ -73,18 +35,22 @@ func (e *PushedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
func NewPushedEvent(
ctx context.Context,
reachedEvent *ReachedEvent,
newAggregate *Aggregate,
milestone Milestone,
reached time.Time,
endpoints []string,
primaryDomain string,
) *PushedEvent {
aggregate := reachedEvent.Aggregate()
return &PushedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
ctx,
&aggregate,
&newAggregate.Aggregate,
PushedEventType,
),
ReachedEventSequence: reachedEvent.Sequence(),
Endpoints: endpoints,
Milestone: milestone,
Reached: reached,
Endpoints: endpoints,
PrimaryDomain: primaryDomain,
}
}
@@ -92,11 +58,9 @@ func PushedEventMapper(event *repository.Event) (eventstore.Event, error) {
e := &PushedEvent{
BaseEvent: *eventstore.BaseEventFromRepo(event),
}
err := json.Unmarshal(event.Data, e)
if err != nil {
return nil, errors.ThrowInternal(err, "QUOTA-4n8vs", "unable to unmarshal milestone pushed")
}
return e, nil
}

View File

@@ -0,0 +1,30 @@
// Code generated by "stringer -type=Milestone"; DO NOT EDIT.
package milestone
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[unknown-0]
_ = x[InstanceCreated-1]
_ = x[AuthenticationSucceededOnInstance-2]
_ = x[ProjectCreated-3]
_ = x[ApplicationCreated-4]
_ = x[AuthenticationSucceededOnApplication-5]
_ = x[InstanceDeleted-6]
_ = x[milestonesCount-7]
}
const _Milestone_name = "unknownInstanceCreatedAuthenticationSucceededOnInstanceProjectCreatedApplicationCreatedAuthenticationSucceededOnApplicationInstanceDeletedmilestonesCount"
var _Milestone_index = [...]uint8{0, 7, 22, 55, 69, 87, 123, 138, 153}
func (i Milestone) String() string {
if i < 0 || i >= Milestone(len(_Milestone_index)-1) {
return "Milestone(" + strconv.FormatInt(int64(i), 10) + ")"
}
return _Milestone_name[_Milestone_index[i]:_Milestone_index[i+1]]
}

View File

@@ -0,0 +1,25 @@
//go:generate stringer -type=Milestone
package milestone
type Milestone int
const (
unknown Milestone = iota
InstanceCreated
AuthenticationSucceededOnInstance
ProjectCreated
ApplicationCreated
AuthenticationSucceededOnApplication
InstanceDeleted
milestonesCount
)
func All() []Milestone {
milestones := make([]Milestone, milestonesCount-1)
for i := 1; i < int(milestonesCount); i++ {
milestones[i] = Milestone(i)
}
return milestones
}

View File

@@ -1,15 +0,0 @@
package milestone
import "github.com/zitadel/zitadel/internal/eventstore"
type SerializableEvent struct {
eventstore.BaseEvent `json:",inline"`
Data []byte `json:"data"`
}
func newSerializableEvent(triggeringEvent eventstore.BaseEvent) SerializableEvent {
return SerializableEvent{
BaseEvent: triggeringEvent,
Data: triggeringEvent.DataAsBytes(),
}
}