File tree Expand file tree Collapse file tree 4 files changed +287
-55
lines changed
Expand file tree Collapse file tree 4 files changed +287
-55
lines changed Original file line number Diff line number Diff line change 1+ package client
2+
3+ import (
4+ "context"
5+ "github.com/go-playground/validator/v10"
6+ "github.com/tidepool-org/go-common/events"
7+ )
8+
9+ const Topic = "emails"
10+
11+ type Client interface {
12+ Send (ctx context.Context , email events.SendEmailTemplateEvent ) error
13+ }
14+
15+ type client struct {
16+ producer * events.KafkaCloudEventsProducer
17+ validate * validator.Validate
18+ }
19+
20+ var _ Client = & client {}
21+
22+ func NewClient (config * events.CloudEventsConfig ) (Client , error ) {
23+ producer , err := events .NewKafkaCloudEventsProducer (config )
24+ if err != nil {
25+ return nil , err
26+ }
27+
28+ return & client {
29+ producer : producer ,
30+ validate : validator .New (),
31+ }, nil
32+ }
33+
34+ func (c * client ) Send (ctx context.Context , email events.SendEmailTemplateEvent ) error {
35+ if err := c .validate .Var (email .Recipient , "email" ); err != nil {
36+ return err
37+ }
38+ if err := c .validate .Var (email .Template , "required,min=1" ); err != nil {
39+ return err
40+ }
41+ return c .producer .Send (ctx , email )
42+ }
Original file line number Diff line number Diff line change 1+ module github.com/tidepool-org/mailer/client
2+
3+ go 1.16
4+
5+ require (
6+ github.com/go-playground/validator/v10 v10.9.0
7+ github.com/tidepool-org/go-common v0.8.3-0.20210910112449-5937a193bc79
8+ go.uber.org/zap v1.16.0 // indirect
9+ golang.org/x/tools v0.0.0-20191108193012-7d206e10da11 // indirect
10+ )
You can’t perform that action at this time.
0 commit comments