From da95f9a5f0e3cfa16405126180a08a6363db48b0 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sat, 29 Jun 2019 21:17:22 -0700 Subject: [PATCH] Refactor Stringer implementations and scp root cmd init function --- Makefile | 1 + cli/commands/root.go | 20 +++++++++--------- credentials/types/credential.go | 36 +++++++++++++++++++++++++-------- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index b89b449..dc3f7e7 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,7 @@ install-spc: gen-protoc: protoc --go_out=plugins=grpc:. \ + --dart_out=grpc:. \ ./credentials/protobuf/service.proto gen-csr-json: diff --git a/cli/commands/root.go b/cli/commands/root.go index 50f3f02..77abda5 100644 --- a/cli/commands/root.go +++ b/cli/commands/root.go @@ -28,15 +28,17 @@ can interact with the entire Selfpass API.`, mgr := repositories.NewConfigManager(cfgFile) clientInit := credrepos.NewCredentialServiceClient - rootCmd.AddCommand(makeInit(mgr)) - rootCmd.AddCommand(makeEncrypt(mgr)) - rootCmd.AddCommand(makeDecrypt(mgr)) - rootCmd.AddCommand(makeDecryptCfg(mgr)) - rootCmd.AddCommand(commands.MakeList(makeInitClient(mgr, clientInit))) - rootCmd.AddCommand(commands.MakeCreate(mgr, makeInitClient(mgr, clientInit))) - rootCmd.AddCommand(commands.MakeUpdate(mgr, makeInitClient(mgr, clientInit))) - rootCmd.AddCommand(commands.MakeGet(mgr, makeInitClient(mgr, clientInit))) - rootCmd.AddCommand(commands.MakeDelete(makeInitClient(mgr, clientInit))) + rootCmd.AddCommand( + makeInit(mgr), + makeEncrypt(mgr), + makeDecrypt(mgr), + makeDecryptCfg(mgr), + commands.MakeList(makeInitClient(mgr, clientInit)), + commands.MakeCreate(mgr, makeInitClient(mgr, clientInit)), + commands.MakeUpdate(mgr, makeInitClient(mgr, clientInit)), + commands.MakeGet(mgr, makeInitClient(mgr, clientInit)), + commands.MakeDelete(makeInitClient(mgr, clientInit)), + ) check(rootCmd.Execute()) } diff --git a/credentials/types/credential.go b/credentials/types/credential.go index a332068..26a403f 100644 --- a/credentials/types/credential.go +++ b/credentials/types/credential.go @@ -16,10 +16,20 @@ type Credential struct { } func (c Credential) String() string { - return fmt.Sprintf( - "username = %s\nemail = %s\n%s", - c.Username, c.Email, c.Metadata, - ) + format := "%s" + args := []interface{}{c.Metadata} + + if c.Username != "" { + format += "username = %s\n" + args = append(args, c.Username) + } + + if c.Email != "" { + format += "email = %s\n" + args = append(args, c.Email) + } + + return fmt.Sprintf(format, args...) } type CredentialInput struct { @@ -41,10 +51,20 @@ type Metadata struct { } func (m Metadata) String() string { - return fmt.Sprintf( - "id = %s\nsourceHost = %s\ncreatedAt = %s\nupdatedAt = %s\nprimary = %s\nloginUrl = %s\ntag = %s\n", - m.ID, m.SourceHost, m.CreatedAt, m.UpdatedAt, m.Primary, m.LoginURL, m.Tag, - ) + format := "id = %s\ncreatedAt = %s\nupdatedAt = %s\nsourceHost = %s\nprimary = %s\n" + args := []interface{}{m.ID, m.CreatedAt, m.UpdatedAt, m.SourceHost, m.Primary} + + if m.LoginURL != "" { + format += "loginUrl = %s\n" + args = append(args, m.LoginURL) + } + + if m.Tag != "" { + format += "tag = %s\n" + args = append(args, m.Tag) + } + + return fmt.Sprintf(format, args...) } type MetadataInput struct {