Skip to content
This repository has been archived by the owner on Apr 24, 2023. It is now read-only.

Commit

Permalink
Merge pull request #8 from aidenkeating/fix-version-api-key
Browse files Browse the repository at this point in the history
Fix version api key
  • Loading branch information
aidenkeating authored Feb 5, 2020
2 parents 2cea96d + 2861906 commit c6261c8
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 11 deletions.
42 changes: 32 additions & 10 deletions cmd/cli/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"fmt"
"os"

"github.com/pkg/errors"

"github.com/spf13/pflag"

"github.com/integr8ly/smtp-service/version"
Expand Down Expand Up @@ -37,11 +39,6 @@ func main() {
logrus.SetLevel(getDebugLevelFromString(flagDebug))
logrus.SetOutput(os.Stderr)
logger := logrus.WithField("service", "rhmi_sendgrid_cli")
smtpdetailsClient, err := sendgrid.NewDefaultClient(logger)
if err != nil {
logger.Fatalf("failed to create sendgrid details client: %v", err)
os.Exit(1)
}

rootCmd := &cobra.Command{
Use: "cli [sub command]",
Expand All @@ -53,7 +50,11 @@ func main() {
Short: "create sendgrid sub user and api key associated with [cluster id]",
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
smtpDetails, err := smtpdetailsClient.Create(args[0])
smtpDetailsClient, err := setupSMTPDetailsClient(logger)
if err != nil {
exitError("failed to setup smtp details client", exitCodeErrUnknown)
}
smtpDetails, err := smtpDetailsClient.Create(args[0])
if err != nil {
if smtpdetails.IsAlreadyExistsError(err) {
exitError(fmt.Sprintf("api key for cluster %s already exists", args[0]), exitCodeErrKnown)
Expand All @@ -75,7 +76,11 @@ func main() {
Short: "get sendgrid api key id associated with [cluster id]",
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
smtpDetails, err := smtpdetailsClient.Get(args[0])
smtpDetailsClient, err := setupSMTPDetailsClient(logger)
if err != nil {
exitError("failed to setup smtp details client", exitCodeErrUnknown)
}
smtpDetails, err := smtpDetailsClient.Get(args[0])
if err != nil {
if smtpdetails.IsNotExistError(err) {
exitError(fmt.Sprintf("api key for cluster %s not found", args[0]), exitCodeErrKnown)
Expand All @@ -91,7 +96,11 @@ func main() {
Short: "delete sendgrid sub user and api key associated with [cluster id]",
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
if err := smtpdetailsClient.Delete(args[0]); err != nil {
smtpDetailsClient, err := setupSMTPDetailsClient(logger)
if err != nil {
exitError("failed to setup smtp details client", exitCodeErrUnknown)
}
if err := smtpDetailsClient.Delete(args[0]); err != nil {
if smtpdetails.IsNotExistError(err) {
exitError(fmt.Sprintf("api key for cluster %s does not exist", args[0]), exitCodeErrKnown)
}
Expand All @@ -106,7 +115,11 @@ func main() {
Short: "delete api key associated with [cluster id] and genereate a new key",
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
key, err := smtpdetailsClient.Refresh(args[0])
smtpDetailsClient, err := setupSMTPDetailsClient(logger)
if err != nil {
exitError("failed to setup smtp details client", exitCodeErrUnknown)
}
key, err := smtpDetailsClient.Refresh(args[0])
if err != nil {
if smtpdetails.IsNotExistError(err) {
exitError(fmt.Sprintf("cannot create api key for cluster that does not exist, cluster=%s, use the create command", args[0]), exitCodeErrKnown)
Expand All @@ -126,7 +139,7 @@ func main() {
}

rootCmd.AddCommand(cmdDelete, cmdGet, cmdCreate, cmdRefresh, cmdVersion)
if err = rootCmd.Execute(); err != nil {
if err := rootCmd.Execute(); err != nil {
panic(err)
}
}
Expand All @@ -152,3 +165,12 @@ func getDebugLevelFromString(levelStr string) logrus.Level {
}
return level
}

func setupSMTPDetailsClient(logger *logrus.Entry) (*sendgrid.Client, error) {
smtpdetailsClient, err := sendgrid.NewDefaultClient(logger)
if err != nil {
logger.Fatalf("failed to create sendgrid details client: %v", err)
return nil, errors.Wrap(err, "failed to setup sendgrid smtp details client")
}
return smtpdetailsClient, nil
}
2 changes: 1 addition & 1 deletion version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ package version

var (
//Version Version of the SMTP Service
Version = "0.1.0"
Version = "0.1.1"
)

0 comments on commit c6261c8

Please sign in to comment.