Documentation
¶
Index ¶
- Constants
- Variables
- func Enqueue(ctx context.Context, store JobCreator, toEmail string, ...) error
- func OccurredAt(now time.Time) string
- func PermanentError(reason string, err error) error
- func TransientError(reason string, err error) error
- func ValidateTemplate(key domain.EmailTemplate) error
- func ValueOrUnknown(value string) string
- type DeliveryError
- type EffectiveTemplate
- type FailureClass
- type JobCreator
- type LoginAlertPayload
- type Message
- type NoopSender
- type NoopSenderConfig
- type OperatorAuditPage
- type OperatorAuditQuery
- type PreviewTemplateInput
- type SMTPSender
- type SaveTemplateOverrideInput
- type Sender
- type Service
- type TemplateData
- type TemplateDefinition
- type TemplateErrorLocation
- type TemplateHistoryPage
- type TemplateOverrideStore
- type TemplatePart
- type TemplateService
- func (s *TemplateService) DeleteOverride(ctx context.Context, key domain.EmailTemplate, expectedRevision int64, ...) error
- func (s *TemplateService) Get(ctx context.Context, key domain.EmailTemplate) (EffectiveTemplate, error)
- func (s *TemplateService) GetVersion(ctx context.Context, key domain.EmailTemplate, version int64) (domain.EmailTemplateVersion, error)
- func (s *TemplateService) History(ctx context.Context, key domain.EmailTemplate) ([]domain.EmailTemplateVersion, error)
- func (s *TemplateService) HistoryPage(ctx context.Context, key domain.EmailTemplate, page, size int) (TemplateHistoryPage, error)
- func (s *TemplateService) List(ctx context.Context) ([]EffectiveTemplate, error)
- func (s *TemplateService) ListAuditEvents(ctx context.Context, query OperatorAuditQuery) (OperatorAuditPage, error)
- func (s *TemplateService) Preview(in PreviewTemplateInput) (Message, error)
- func (s *TemplateService) Render(ctx context.Context, key domain.EmailTemplate, data TemplateData) (Message, error)
- func (s *TemplateService) SaveOverride(ctx context.Context, in SaveTemplateOverrideInput) (EffectiveTemplate, error)
- func (s *TemplateService) SetDeliveryEnabled(ctx context.Context, key domain.EmailTemplate, enabled bool, ...) error
- type TemplateSource
Constants ¶
const ( TemplateVariableCode = "code" TemplateVariableOrganizationName = "organization_name" TemplateVariableInviteURL = "invite_url" TemplateVariableInvitationCode = "invitation_code" TemplateVariableRole = "role" TemplateVariableExpiresAt = "expires_at" TemplateVariableUsername = "username" TemplateVariableAuthMethod = "auth_method" TemplateVariableOccurredAt = "occurred_at" TemplateVariableIPAddress = "ip_address" TemplateVariableUserAgent = "user_agent" TemplateVariableOldEmail = "old_email" TemplateVariableNewEmail = "new_email" TemplateVariableAccessChange = "access_change" TemplateVariableMemberEmail = "member_email" TemplateVariablePreviousRole = "previous_role" TemplateVariablePreviousOwnerEmail = "previous_owner_email" TemplateVariableNewOwnerEmail = "new_owner_email" )
const DefaultDeliveryWindow = 72 * time.Hour
Variables ¶
var ( ErrUnknownTemplate = errors.New("unknown email template") ErrMissingTemplateVariable = errors.New("missing required email template variable") )
var ( ErrEmptyTemplatePart = errors.New("email template part is empty") ErrMalformedTemplate = errors.New("email template syntax is malformed") ErrUnknownTemplateVariable = errors.New("unknown email template variable") ErrMissingTemplatePlaceholder = errors.New("required email template placeholder is missing") ErrInvalidTemplateSubject = errors.New("email template subject contains a line break") ErrMissingTemplateUpdater = errors.New("email template updater is missing") )
var ErrMissingEmailRecipient = errors.New("email recipient is missing")
Functions ¶
func Enqueue ¶ added in v0.21.0
func Enqueue( ctx context.Context, store JobCreator, toEmail string, template domain.EmailTemplate, data TemplateData, now time.Time, ) error
Enqueue creates a transactional email job using the transaction carried by ctx, when present. Callers should invoke it in the same transaction as the state change described by the email.
func OccurredAt ¶ added in v0.21.0
func PermanentError ¶ added in v0.22.0
func TransientError ¶ added in v0.22.0
func ValidateTemplate ¶ added in v0.20.0
func ValidateTemplate(key domain.EmailTemplate) error
ValidateTemplate checks whether Core owns the supplied email template type.
func ValueOrUnknown ¶ added in v0.21.0
Types ¶
type DeliveryError ¶ added in v0.22.0
type DeliveryError struct {
Class FailureClass
Reason string
Err error
}
func (*DeliveryError) Error ¶ added in v0.22.0
func (e *DeliveryError) Error() string
func (*DeliveryError) Unwrap ¶ added in v0.22.0
func (e *DeliveryError) Unwrap() error
type EffectiveTemplate ¶ added in v0.20.0
type EffectiveTemplate struct {
Definition TemplateDefinition
Source TemplateSource
Override *domain.EmailTemplateOverride
DeliveryDisabled bool
}
EffectiveTemplate combines immutable catalog metadata with an optional persisted customization.
type FailureClass ¶ added in v0.22.0
type FailureClass string
const ( FailureTransient FailureClass = "transient" FailurePermanent FailureClass = "permanent" )
func ClassifyFailure ¶ added in v0.22.0
func ClassifyFailure(err error) (FailureClass, string)
type JobCreator ¶ added in v0.21.0
type LoginAlertPayload ¶
type Message ¶
func RenderBuiltInTemplate ¶ added in v0.20.0
func RenderBuiltInTemplate(key domain.EmailTemplate, data TemplateData) (Message, error)
RenderBuiltInTemplate renders the canonical Authara default for a template.
type NoopSender ¶
type NoopSender struct {
// contains filtered or unexported fields
}
func NewNoopSender ¶
func NewNoopSender(cfg NoopSenderConfig) *NoopSender
type NoopSenderConfig ¶
type OperatorAuditPage ¶ added in v0.20.0
type OperatorAuditPage struct {
Events []domain.OperatorAuditEvent
Page int
Size int
HasNext bool
Action string
Template domain.EmailTemplate
}
type OperatorAuditQuery ¶ added in v0.20.0
type OperatorAuditQuery struct {
Page int
Size int
Action string
Template domain.EmailTemplate
}
type PreviewTemplateInput ¶ added in v0.20.0
type PreviewTemplateInput struct {
Template domain.EmailTemplate
SubjectTemplate string
TextTemplate string
HTMLTemplate string
}
type SMTPSender ¶
type SMTPSender struct {
// contains filtered or unexported fields
}
func NewSMTPSender ¶
type SaveTemplateOverrideInput ¶ added in v0.20.0
type TemplateData ¶ added in v0.20.0
TemplateData contains the values available while rendering an email.
type TemplateDefinition ¶ added in v0.20.0
type TemplateDefinition struct {
Key domain.EmailTemplate
DisplayName string
Description string
DefaultSubjectTemplate string
DefaultTextTemplate string
DefaultHTMLTemplate string
AvailableVariables []string
RequiredSubjectVariables []string
RequiredBodyVariables []string
SampleData TemplateData
}
TemplateDefinition describes one Core-owned transactional email and its fixed operator-editable contract.
func LookupTemplate ¶ added in v0.20.0
func LookupTemplate(key domain.EmailTemplate) (TemplateDefinition, error)
LookupTemplate returns the definition for a Core-owned email template.
func TemplateCatalog ¶ added in v0.20.0
func TemplateCatalog() []TemplateDefinition
TemplateCatalog returns all supported email definitions in display order.
type TemplateErrorLocation ¶ added in v0.20.0
type TemplateErrorLocation struct {
Part TemplatePart
Line int
}
func LocateTemplateError ¶ added in v0.20.0
func LocateTemplateError(err error) (TemplateErrorLocation, bool)
type TemplateHistoryPage ¶ added in v0.22.0
type TemplateHistoryPage struct {
Versions []domain.EmailTemplateVersion
Page int
Size int
HasNext bool
}
type TemplateOverrideStore ¶ added in v0.20.0
type TemplateOverrideStore interface {
GetEmailTemplateOverride(context.Context, domain.EmailTemplate) (domain.EmailTemplateOverride, error)
ListEmailTemplateOverrides(context.Context) ([]domain.EmailTemplateOverride, error)
ListEmailTemplateDeliverySettings(context.Context) ([]domain.EmailTemplateDeliverySetting, error)
SetEmailTemplateDeliveryEnabled(context.Context, domain.EmailTemplate, bool, uuid.UUID) (domain.EmailTemplateDeliverySetting, error)
GetEmailTemplateVersion(context.Context, domain.EmailTemplate, int64) (domain.EmailTemplateVersion, error)
ListEmailTemplateVersions(context.Context, domain.EmailTemplate) ([]domain.EmailTemplateVersion, error)
ListEmailTemplateVersionsPage(context.Context, domain.EmailTemplate, int, int) ([]domain.EmailTemplateVersion, error)
UpsertEmailTemplateOverride(context.Context, domain.EmailTemplateOverride, int64) (domain.EmailTemplateOverride, error)
DeleteEmailTemplateOverride(context.Context, domain.EmailTemplate, int64, uuid.UUID) error
ListOperatorAuditEvents(context.Context, store.OperatorAuditEventFilter) ([]domain.OperatorAuditEvent, error)
}
type TemplatePart ¶ added in v0.20.0
type TemplatePart string
const ( TemplatePartSubject TemplatePart = "subject" TemplatePartText TemplatePart = "text" TemplatePartHTML TemplatePart = "html" )
type TemplateService ¶ added in v0.20.0
type TemplateService struct {
// contains filtered or unexported fields
}
TemplateService resolves, validates, and renders operator-managed template overrides for previews and outgoing email delivery.
func NewTemplateService ¶ added in v0.20.0
func NewTemplateService(store TemplateOverrideStore) *TemplateService
func (*TemplateService) DeleteOverride ¶ added in v0.20.0
func (s *TemplateService) DeleteOverride( ctx context.Context, key domain.EmailTemplate, expectedRevision int64, updatedByUserID uuid.UUID, ) error
func (*TemplateService) Get ¶ added in v0.20.0
func (s *TemplateService) Get(ctx context.Context, key domain.EmailTemplate) (EffectiveTemplate, error)
func (*TemplateService) GetVersion ¶ added in v0.20.0
func (s *TemplateService) GetVersion(ctx context.Context, key domain.EmailTemplate, version int64) (domain.EmailTemplateVersion, error)
func (*TemplateService) History ¶ added in v0.20.0
func (s *TemplateService) History(ctx context.Context, key domain.EmailTemplate) ([]domain.EmailTemplateVersion, error)
func (*TemplateService) HistoryPage ¶ added in v0.22.0
func (s *TemplateService) HistoryPage(ctx context.Context, key domain.EmailTemplate, page, size int) (TemplateHistoryPage, error)
func (*TemplateService) List ¶ added in v0.20.0
func (s *TemplateService) List(ctx context.Context) ([]EffectiveTemplate, error)
func (*TemplateService) ListAuditEvents ¶ added in v0.20.0
func (s *TemplateService) ListAuditEvents(ctx context.Context, query OperatorAuditQuery) (OperatorAuditPage, error)
func (*TemplateService) Preview ¶ added in v0.20.0
func (s *TemplateService) Preview(in PreviewTemplateInput) (Message, error)
func (*TemplateService) Render ¶ added in v0.20.0
func (s *TemplateService) Render(ctx context.Context, key domain.EmailTemplate, data TemplateData) (Message, error)
func (*TemplateService) SaveOverride ¶ added in v0.20.0
func (s *TemplateService) SaveOverride(ctx context.Context, in SaveTemplateOverrideInput) (EffectiveTemplate, error)
func (*TemplateService) SetDeliveryEnabled ¶ added in v0.21.0
func (s *TemplateService) SetDeliveryEnabled( ctx context.Context, key domain.EmailTemplate, enabled bool, updatedByUserID uuid.UUID, ) error
type TemplateSource ¶ added in v0.20.0
type TemplateSource string
const ( TemplateSourceBuiltIn TemplateSource = "built_in" TemplateSourceOverride TemplateSource = "override" )