mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-24 00:28:18 +00:00
8f6cb47567
* take baseurl if saved on event * refactor: make es mocks reusable * Revert "refactor: make es mocks reusable" This reverts commit 434ce12a6acf639514308bc231e76ebb8676b643. * make messages testable * test asset url * fmt * fmt * simplify notification.Start * test url combinations * support init code added * support password changed * support reset pw * support user domain claimed * support add pwless login * support verify phone * Revert "support verify phone" This reverts commit e40503303e2fdda0c85985b3fe3160ce96d43cca. * save trigger origin from ctx * add ready for review check * camel * test email otp * fix variable naming * fix DefaultOTPEmailURLV2 * Revert "fix DefaultOTPEmailURLV2" This reverts commit fa34d4d2a83fbfd8353759c9148af9165a9dd44c. * fix email otp challenged test * fix email otp challenged test * pass origin in login and gateway requests * take origin from header * take x-forwarded if present * Update internal/notification/handlers/queries.go Co-authored-by: Tim Möhlmann <tim+github@zitadel.com> * Update internal/notification/handlers/commands.go Co-authored-by: Tim Möhlmann <tim+github@zitadel.com> * move origin header to ctx if available * generate * cleanup * use forwarded header * support X-Forwarded-* headers * standardize context handling * fix linting --------- Co-authored-by: Tim Möhlmann <tim+github@zitadel.com>
29 lines
725 B
Go
29 lines
725 B
Go
package senders
|
|
|
|
import "github.com/zitadel/zitadel/internal/notification/channels"
|
|
|
|
var _ channels.NotificationChannel = (*Chain)(nil)
|
|
|
|
type Chain struct {
|
|
channels []channels.NotificationChannel
|
|
}
|
|
|
|
func ChainChannels(channel ...channels.NotificationChannel) *Chain {
|
|
return &Chain{channels: channel}
|
|
}
|
|
|
|
// HandleMessage returns a non nil error from a provider immediately if any occurs
|
|
// messages are sent to channels in the same order they were provided to ChainChannels()
|
|
func (c *Chain) HandleMessage(message channels.Message) error {
|
|
for i := range c.channels {
|
|
if err := c.channels[i].HandleMessage(message); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c *Chain) Len() int {
|
|
return len(c.channels)
|
|
}
|