refactor(notification): use new queue package (#9360)

# Which Problems Are Solved

The recently introduced notification queue have potential race conditions.

# How the Problems Are Solved

Current code is refactored to use the queue package, which is safe in
regards of concurrency.

# Additional Changes

- the queue is included in startup
- improved code quality of queue

# Additional Context

- closes https://github.com/zitadel/zitadel/issues/9278
This commit is contained in:
Silvan
2025-02-27 11:49:12 +01:00
committed by GitHub
parent 83614562a2
commit 444f682e25
45 changed files with 1936 additions and 2818 deletions

View File

@@ -19,15 +19,15 @@ var (
var _ channels.Message = (*Email)(nil)
type Email struct {
Recipients []string
BCC []string
CC []string
SenderEmail string
SenderName string
ReplyToAddress string
Subject string
Content string
TriggeringEvent eventstore.Event
Recipients []string
BCC []string
CC []string
SenderEmail string
SenderName string
ReplyToAddress string
Subject string
Content string
TriggeringEventType eventstore.EventType
}
func (msg *Email) GetContent() (string, error) {
@@ -61,8 +61,8 @@ func (msg *Email) GetContent() (string, error) {
return message, nil
}
func (msg *Email) GetTriggeringEvent() eventstore.Event {
return msg.TriggeringEvent
func (msg *Email) GetTriggeringEventType() eventstore.EventType {
return msg.TriggeringEventType
}
func isHTML(input string) bool {

View File

@@ -12,8 +12,8 @@ import (
var _ channels.Message = (*Form)(nil)
type Form struct {
Serializable any
TriggeringEvent eventstore.Event
Serializable any
TriggeringEventType eventstore.EventType
}
func (msg *Form) GetContent() (string, error) {
@@ -22,6 +22,6 @@ func (msg *Form) GetContent() (string, error) {
return values.Encode(), err
}
func (msg *Form) GetTriggeringEvent() eventstore.Event {
return msg.TriggeringEvent
func (msg *Form) GetTriggeringEventType() eventstore.EventType {
return msg.TriggeringEventType
}

View File

@@ -10,8 +10,8 @@ import (
var _ channels.Message = (*JSON)(nil)
type JSON struct {
Serializable interface{}
TriggeringEvent eventstore.Event
Serializable interface{}
TriggeringEventType eventstore.EventType
}
func (msg *JSON) GetContent() (string, error) {
@@ -19,6 +19,6 @@ func (msg *JSON) GetContent() (string, error) {
return string(bytes), err
}
func (msg *JSON) GetTriggeringEvent() eventstore.Event {
return msg.TriggeringEvent
func (msg *JSON) GetTriggeringEventType() eventstore.EventType {
return msg.TriggeringEventType
}

View File

@@ -11,16 +11,19 @@ type SMS struct {
SenderPhoneNumber string
RecipientPhoneNumber string
Content string
TriggeringEvent eventstore.Event
TriggeringEventType eventstore.EventType
// VerificationID is set by the sender
VerificationID *string
InstanceID string
JobID string
UserID string
}
func (msg *SMS) GetContent() (string, error) {
return msg.Content, nil
}
func (msg *SMS) GetTriggeringEvent() eventstore.Event {
return msg.TriggeringEvent
func (msg *SMS) GetTriggeringEventType() eventstore.EventType {
return msg.TriggeringEventType
}