Files
zitadel/apps/api/internal/repository/instance/trusted_domain.go
2025-08-05 15:20:32 -07:00

96 lines
2.3 KiB
Go

package instance
import (
"context"
"github.com/zitadel/zitadel/internal/eventstore"
)
const (
trustedDomainPrefix = "trusted_domains."
UniqueTrustedDomain = "trusted_domain"
TrustedDomainAddedEventType = instanceEventTypePrefix + trustedDomainPrefix + "added"
TrustedDomainRemovedEventType = instanceEventTypePrefix + trustedDomainPrefix + "removed"
)
func NewAddTrustedDomainUniqueConstraint(trustedDomain string) *eventstore.UniqueConstraint {
return eventstore.NewAddEventUniqueConstraint(
UniqueTrustedDomain,
trustedDomain,
"Errors.Instance.Domain.AlreadyExists")
}
func NewRemoveTrustedDomainUniqueConstraint(trustedDomain string) *eventstore.UniqueConstraint {
return eventstore.NewRemoveUniqueConstraint(
UniqueTrustedDomain,
trustedDomain)
}
type TrustedDomainAddedEvent struct {
eventstore.BaseEvent `json:"-"`
Domain string `json:"domain"`
}
func (e *TrustedDomainAddedEvent) SetBaseEvent(event *eventstore.BaseEvent) {
e.BaseEvent = *event
}
func NewTrustedDomainAddedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
trustedDomain string,
) *TrustedDomainAddedEvent {
event := &TrustedDomainAddedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
ctx,
aggregate,
TrustedDomainAddedEventType,
),
Domain: trustedDomain,
}
return event
}
func (e *TrustedDomainAddedEvent) Payload() interface{} {
return e
}
func (e *TrustedDomainAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewAddTrustedDomainUniqueConstraint(e.Domain)}
}
type TrustedDomainRemovedEvent struct {
eventstore.BaseEvent `json:"-"`
Domain string `json:"domain"`
}
func (e *TrustedDomainRemovedEvent) SetBaseEvent(event *eventstore.BaseEvent) {
e.BaseEvent = *event
}
func NewTrustedDomainRemovedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
trustedDomain string,
) *TrustedDomainRemovedEvent {
event := &TrustedDomainRemovedEvent{
BaseEvent: *eventstore.NewBaseEventForPush(
ctx,
aggregate,
TrustedDomainRemovedEventType,
),
Domain: trustedDomain,
}
return event
}
func (e *TrustedDomainRemovedEvent) Payload() interface{} {
return e
}
func (e *TrustedDomainRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{NewRemoveTrustedDomainUniqueConstraint(e.Domain)}
}