service

package
v0.0.0-...-d18ee5a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	SMTP      SMTPConfig
	SES       SESConfig
	Sendgrid  SendgridConfig
	Sparkpost sp.Config
}

type IProvider

type IProvider interface {
	SendMail(mail *models.Mail) error
}

type ISPClient

type ISPClient interface {
	Send(*sp.Transmission) (id string, res *sp.Response, err error)
}

type ISendgridClient

type ISendgridClient interface {
	Send(msg *sgHelper.SGMailV3) (*rest.Response, error)
}

type IService

type IService interface {
	QueueMail(mail *models.Mail)
}

type SESConfig

type SESConfig struct {
	Region string `json:"region"`
}

type SESProvider

type SESProvider struct {
	Logger  *log.Logger
	Client  sesiface.SESAPI
	Session *session.Session
}

func NewSESProvider

func NewSESProvider(cfg SESConfig, logger *log.Logger) *SESProvider

func (*SESProvider) SendMail

func (s *SESProvider) SendMail(mail *models.Mail) error

type SMTPConfig

type SMTPConfig struct {
	Host string `json:"host"`
	Port string `json:"port"`
	User string `json:"user"`
	Pass string `json:"pass"`
}

type SMTPProvider

type SMTPProvider struct {
	Addr   string
	Auth   smtp.Auth
	Logger *log.Logger
}

func NewSMTPProvider

func NewSMTPProvider(cfg SMTPConfig, logger *log.Logger) *SMTPProvider

func (*SMTPProvider) SendMail

func (s *SMTPProvider) SendMail(mail *models.Mail) error

type SendgridConfig

type SendgridConfig struct {
	ApiKey string `json:"api_key"`
}

type SendgridProvider

type SendgridProvider struct {
	Logger *log.Logger
	Client ISendgridClient
}

func NewSendgridProvider

func NewSendgridProvider(cfg SendgridConfig, logger *log.Logger) *SendgridProvider

func (*SendgridProvider) SendMail

func (s *SendgridProvider) SendMail(mail *models.Mail) error

type Service

type Service struct {
	Logger    *log.Logger
	Providers []IProvider
	// contains filtered or unexported fields
}

func NewService

func NewService(providers []IProvider, logger *log.Logger) *Service

func (*Service) QueueMail

func (s *Service) QueueMail(mail *models.Mail)

func (*Service) Quit

func (s *Service) Quit()

type SparkpostProvider

type SparkpostProvider struct {
	Logger *log.Logger
	Client ISPClient
}

func NewSparkpostProvider

func NewSparkpostProvider(cfg sp.Config, logger *log.Logger) *SparkpostProvider

func (*SparkpostProvider) SendMail

func (s *SparkpostProvider) SendMail(mail *models.Mail) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL