Documentation
¶
Index ¶
- Constants
- func Channel(renderer func(ctx context.Context, model any) (Content, error)) notification.RendererBinding
- func Identity(address string) map[string]string
- func Renderer(renderer func(ctx context.Context, model any) (Content, error)) notification.ChannelRenderer
- func TemplateChannel(renderer func(ctx context.Context, model any) (TemplateContent, error)) notification.RendererBinding
- func TemplateRenderer(renderer func(ctx context.Context, model any) (TemplateContent, error)) notification.ChannelRenderer
- type Content
- type ContentRenderer
- type ContentRendererProvider
- type Delivery
- type EnabledResolver
- type Enqueuer
- type EnqueuerProvider
- type Provider
- func NewCatalogProvider(cfg *config.Config) *Provider
- func NewProvider(senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, ...) *Provider
- func NewProviderWithTemplateRenderer(senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, ...) *Provider
- func NewProviderWithTemplateRendererOptions(senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, ...) *Provider
- func (p *Provider) BuildTarget(rawTarget string) (notification.Target, error)
- func (p *Provider) Deliver(ctx context.Context, delivery notification.Delivery) error
- func (p *Provider) DisplayTarget(target notification.Target) (string, error)
- func (p *Provider) ID() string
- func (p *Provider) NormalizeTarget(target notification.Target) (notification.Target, error)
- func (p *Provider) ProviderMetadata() notification.ProviderMetadata
- func (p *Provider) ResolveUserTarget(user notification.User) (notification.Target, bool, error)
- func (p *Provider) ValidateTarget(target notification.Target) error
- type ProviderOption
- type Sender
- type SenderProvider
- type ServiceProviderDescriptor
- type ServiceProviderResolver
- type TemplateContent
Constants ¶
View Source
const ( ChannelID = notification.DeliveryChannelEmail AddressKeyEmail = "email" )
View Source
const ( MetadataKeyServiceProviderName = "service-provider-name" MetadataKeyServiceProviderType = "service-provider-type" )
Variables ¶
This section is empty.
Functions ¶
func Channel ¶
func Channel(renderer func(ctx context.Context, model any) (Content, error)) notification.RendererBinding
func Renderer ¶
func Renderer(renderer func(ctx context.Context, model any) (Content, error)) notification.ChannelRenderer
func TemplateChannel ¶
func TemplateChannel(renderer func(ctx context.Context, model any) (TemplateContent, error)) notification.RendererBinding
func TemplateRenderer ¶
func TemplateRenderer(renderer func(ctx context.Context, model any) (TemplateContent, error)) notification.ChannelRenderer
Types ¶
type Content ¶
type Content struct {
From string
Subject string
HTMLBody string
TextBody string
Attachments []emailtypes.Attachment
Headers map[string]string
}
func (Content) ClonePayload ¶
type ContentRenderer ¶
type ContentRenderer interface {
RenderTemplate(ctx context.Context, content TemplateContent) (Content, error)
}
type ContentRendererProvider ¶
type ContentRendererProvider func() ContentRenderer
type Delivery ¶
type Delivery struct {
To string
Content Content
Metadata notification.TransportMetadata
}
type EnabledResolver ¶
type EnabledResolver func() bool
type EnqueuerProvider ¶
type EnqueuerProvider func() Enqueuer
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
func NewCatalogProvider ¶
func NewProvider ¶
func NewProvider(senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, opts ...ProviderOption) *Provider
func NewProviderWithTemplateRenderer ¶
func NewProviderWithTemplateRenderer( senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, contentRendererProvider ContentRendererProvider, ) *Provider
func NewProviderWithTemplateRendererOptions ¶
func NewProviderWithTemplateRendererOptions( senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, contentRendererProvider ContentRendererProvider, opts ...ProviderOption, ) *Provider
func (*Provider) BuildTarget ¶
func (p *Provider) BuildTarget(rawTarget string) (notification.Target, error)
func (*Provider) Deliver ¶
Deliver prefers enqueuing when a started enqueuer is available. If direct sending is the only option and no sender is configured or enabled, delivery is treated as a no-op so notifications can be optional in some environments.
func (*Provider) DisplayTarget ¶
func (p *Provider) DisplayTarget(target notification.Target) (string, error)
func (*Provider) NormalizeTarget ¶
func (p *Provider) NormalizeTarget(target notification.Target) (notification.Target, error)
func (*Provider) ProviderMetadata ¶
func (p *Provider) ProviderMetadata() notification.ProviderMetadata
func (*Provider) ResolveUserTarget ¶
func (p *Provider) ResolveUserTarget(user notification.User) (notification.Target, bool, error)
func (*Provider) ValidateTarget ¶
func (p *Provider) ValidateTarget(target notification.Target) error
type ProviderOption ¶
type ProviderOption func(*Provider)
func WithEnabledResolver ¶
func WithEnabledResolver(resolver EnabledResolver) ProviderOption
func WithServiceProviderResolver ¶
func WithServiceProviderResolver(resolver ServiceProviderResolver) ProviderOption
type Sender ¶
type Sender interface {
IsEnabled() bool
Send(ctx context.Context, message *emailtypes.Message) (*emailtypes.SendResult, error)
}
type SenderProvider ¶
type SenderProvider func() Sender
type ServiceProviderResolver ¶
type ServiceProviderResolver func() ServiceProviderDescriptor
type TemplateContent ¶
type TemplateContent struct {
TemplateName string
TemplateData map[string]any
From string
Subject string
HTMLBody string
TextBody string
Attachments []emailtypes.Attachment
Headers map[string]string
}
func (TemplateContent) Clone ¶
func (c TemplateContent) Clone() TemplateContent
func (TemplateContent) ClonePayload ¶
func (c TemplateContent) ClonePayload() any
func (TemplateContent) FallbackContent ¶
func (c TemplateContent) FallbackContent() (Content, error)
func (TemplateContent) Validate ¶
func (c TemplateContent) Validate() error
Click to show internal directories.
Click to hide internal directories.