Skip to content

Commit

Permalink
refactor http handler (#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrwormhole authored Jun 10, 2024
1 parent ffab6f7 commit 67ea2c7
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions cmd/emailer/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,17 @@ import (

"github.com/hashicorp/go-retryablehttp"

"github.com/mrwormhole/emailer"
"github.com/mrwormhole/emailer/brevo"
)

var debugEnabled = flag.Bool("debug", false, "in debug environment")

const (
defaultPort = "5555"
// Providers Listed below
providerBrevo = "brevo"
)

func main() {
flag.Parse()

Expand All @@ -44,7 +49,7 @@ func main() {
}
port, ok := os.LookupEnv("PORT")
if !ok {
port = "5555"
port = defaultPort
}
portNum, err := strconv.Atoi(port)
if err != nil {
Expand All @@ -53,24 +58,25 @@ func main() {
}
provider, ok := os.LookupEnv("PROVIDER")
if !ok {
provider = "brevo"
provider = providerBrevo
}

var sender emailer.Sender
var handler http.HandlerFunc
switch {
case strings.EqualFold(provider, "brevo"):
case strings.EqualFold(provider, providerBrevo):
c := retryablehttp.NewClient()
c.RetryMax = 3
httpClient := c.StandardClient()
httpClient.Timeout = 10 * time.Second
sender, err = brevo.New(key, httpClient)
sender, err := brevo.New(key, httpClient)
if err != nil {
slog.LogAttrs(context.Background(), slog.LevelError, "brevo.New()", slog.String("err", err.Error()))
}
handler = brevo.EmailHandler(sender)
}

mux := http.NewServeMux()
mux.HandleFunc("POST /email", brevo.EmailHandler(sender))
mux.HandleFunc("POST /email", handler)

srv := &http.Server{
Addr: fmt.Sprintf("localhost:%d", portNum),
Expand Down

0 comments on commit 67ea2c7

Please sign in to comment.