fix: handle both resend and smtp set up together (#28)

* fix: handle both resend and smtp set up together

closes #27

* fix: error header

* fix: error messaging

---------

Co-authored-by: Maas Lalani <maas@lalani.dev>
This commit is contained in:
Carlos Alexandro Becker
2023-08-17 12:15:37 -03:00
committed by GitHub
parent ee206143a8
commit fca3852910
2 changed files with 14 additions and 1 deletions

12
main.go
View File

@@ -76,6 +76,8 @@ var rootCmd = &cobra.Command{
RunE: func(cmd *cobra.Command, args []string) error {
var deliveryMethod DeliveryMethod
switch {
case resendAPIKey != "" && smtpUsername != "" && smtpPassword != "":
deliveryMethod = Unknown
case resendAPIKey != "":
deliveryMethod = Resend
case smtpUsername != "" && smtpPassword != "":
@@ -83,12 +85,20 @@ var rootCmd = &cobra.Command{
from = smtpUsername
}
if deliveryMethod == None {
switch deliveryMethod {
case None:
fmt.Printf("\n %s %s %s\n\n", errorHeaderStyle.String(), inlineCodeStyle.Render(ResendAPIKey), "environment variable is required.")
fmt.Printf(" %s %s\n\n", commentStyle.Render("You can grab one at"), linkStyle.Render("https://resend.com/api-keys"))
cmd.SilenceUsage = true
cmd.SilenceErrors = true
return errors.New("missing required environment variable")
case Unknown:
fmt.Printf("\n %s Unknown delivery method.\n", errorHeaderStyle.String())
fmt.Printf("\n You have set both %s and %s delivery methods.", inlineCodeStyle.Render(ResendAPIKey), inlineCodeStyle.Render("POP_SMPT_*"))
fmt.Printf("\n Set only one of these environment variables.\n\n")
cmd.SilenceUsage = true
cmd.SilenceErrors = true
return errors.New("unknown delivery method")
}
if hasStdin() {

View File

@@ -41,6 +41,9 @@ const (
Resend
// SMTP uses an SMTP server to send an email.
SMTP
// Unknown is set when the user has not chosen a single delivery method.
// i.e. multiple delivery methods are set.
Unknown
)
// Model is Pop's application model.