Skip to content

Commit 9d8129c

Browse files
committed
review fixes
1 parent f22890d commit 9d8129c

9 files changed

Lines changed: 82 additions & 25 deletions

File tree

internal/cmd/beta/sqlserverflex/database/describe/describe.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
102102
}
103103

104104
func outputResult(p *print.Printer, outputFormat string, resp *sqlserverflex.GetDatabaseResponse) error {
105-
if resp == nil {
106-
return fmt.Errorf("database response is empty")
107-
}
108-
109105
return p.OutputResult(outputFormat, resp, func() error {
106+
if resp == nil {
107+
return fmt.Errorf("database response is empty")
108+
}
109+
110110
table := tables.NewTable()
111111
table.AddRow("ID", resp.Id)
112112
table.AddSeparator()

internal/cmd/beta/sqlserverflex/instance/create/create.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ type inputModel struct {
5050
StorageClass string
5151
StorageSize *int64
5252
Version string
53-
RetentionDays *int32
53+
RetentionDays int32
5454
}
5555

5656
func NewCmd(params *types.CmdParams) *cobra.Command {
@@ -173,7 +173,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
173173
StorageClass: flags.FlagToStringValue(p, cmd, storageClassFlag),
174174
StorageSize: flags.FlagToInt64Pointer(p, cmd, storageSizeFlag),
175175
Version: flags.FlagToStringValue(p, cmd, versionFlag),
176-
RetentionDays: flags.FlagToInt32Pointer(p, cmd, retentionDaysFlag),
176+
RetentionDays: flags.FlagWithDefaultToInt32Value(p, cmd, retentionDaysFlag),
177177
}
178178

179179
p.DebugInputModel(model)
@@ -229,7 +229,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient sqlserverfle
229229
Size: utils.PtrValue(model.StorageSize),
230230
},
231231
Version: sqlserverflex.InstanceVersion(model.Version),
232-
RetentionDays: utils.PtrValue(model.RetentionDays),
232+
RetentionDays: model.RetentionDays,
233233
})
234234
return req, nil
235235
}

internal/cmd/beta/sqlserverflex/instance/create/create_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
8484
StorageClass: "storage-class",
8585
StorageSize: utils.Ptr(int64(10)),
8686
Version: "6.0",
87-
RetentionDays: utils.Ptr(int32(32)),
87+
RetentionDays: 32,
8888
}
8989
for _, mod := range mods {
9090
mod(model)

internal/cmd/beta/sqlserverflex/instance/describe/describe.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
9696
}
9797

9898
func outputResult(p *print.Printer, outputFormat string, instance *sqlserverflex.GetInstanceResponse, flavor *sqlserverflex.ListFlavors) error {
99-
if instance == nil {
100-
return fmt.Errorf("instance response is empty")
101-
}
102-
10399
return p.OutputResult(outputFormat, instance, func() error {
100+
if instance == nil {
101+
return fmt.Errorf("instance response is empty")
102+
}
103+
104104
acls := strings.Join(instance.Network.Acl, ", ")
105105

106106
table := tables.NewTable()

internal/cmd/beta/sqlserverflex/user/create/create.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
8787
if err != nil {
8888
return fmt.Errorf("create SQLServer Flex user: %w", err)
8989
}
90-
user := resp
9190

92-
return outputResult(params.Printer, model, instanceLabel, user)
91+
return outputResult(params.Printer, model, instanceLabel, resp)
9392
},
9493
}
9594

@@ -134,10 +133,10 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
134133
}
135134

136135
func outputResult(p *print.Printer, model *inputModel, instanceLabel string, user *sqlserverflex.CreateUserResponse) error {
137-
if user == nil {
138-
return fmt.Errorf("user response is empty")
139-
}
140136
return p.OutputResult(model.OutputFormat, user, func() error {
137+
if user == nil {
138+
return fmt.Errorf("user response is empty")
139+
}
141140
p.Outputf("Created user for instance %q. User ID: %d\n\n", instanceLabel, user.Id)
142141
p.Outputf("Username: %s\n", user.Username)
143142
p.Outputf("Password: %s\n", user.Password)

internal/cmd/beta/sqlserverflex/user/describe/describe.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,11 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
115115
}
116116

117117
func outputResult(p *print.Printer, outputFormat string, user *sqlserverflex.GetUserResponse) error {
118-
if user == nil {
119-
return fmt.Errorf("user response is empty")
120-
}
121-
122118
return p.OutputResult(outputFormat, user, func() error {
119+
if user == nil {
120+
return fmt.Errorf("user response is empty")
121+
}
122+
123123
table := tables.NewTable()
124124
table.AddRow("ID", user.Id)
125125
table.AddSeparator()

internal/cmd/beta/sqlserverflex/user/reset-password/reset_password.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,11 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
128128
}
129129

130130
func outputResult(p *print.Printer, outputFormat, userLabel, instanceLabel string, user *sqlserverflex.ResetUserResponse) error {
131-
if user == nil {
132-
return fmt.Errorf("single user response is empty")
133-
}
134-
135131
return p.OutputResult(outputFormat, user, func() error {
132+
if user == nil {
133+
return fmt.Errorf("single user response is empty")
134+
}
135+
136136
p.Outputf("Reset password for user %q of instance %q\n\n", userLabel, instanceLabel)
137137
p.Outputf("Username: %s\n", user.Username)
138138
p.Outputf("New password: %s\n", user.Password)

internal/pkg/flags/flag_to_value.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,17 @@ func FlagWithDefaultToInt64Value(p *print.Printer, cmd *cobra.Command, flag stri
207207
return value
208208
}
209209

210+
// Returns the int32 value set on the flag. If no value is set, returns the flag's default value.
211+
// Returns 0 if the flag value can not be converted to int32 or if the flag does not exist.
212+
func FlagWithDefaultToInt32Value(p *print.Printer, cmd *cobra.Command, flag string) int32 {
213+
value, err := cmd.Flags().GetInt32(flag)
214+
if err != nil {
215+
p.Debug(print.ErrorLevel, "convert flag with default to Int32 value: %v", err)
216+
return 0
217+
}
218+
return value
219+
}
220+
210221
// Returns the string value set on the flag. If no value is set, returns the flag's default value.
211222
// Returns nil if the flag value can not be converted to string or if the flag does not exist.
212223
func FlagWithDefaultToStringValue(p *print.Printer, cmd *cobra.Command, flag string) string {

internal/pkg/flags/flag_to_value_test.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,50 @@ func TestFlagToInt32Pointer(t *testing.T) {
185185
})
186186
}
187187
}
188+
189+
func TestFlagWithDefaultToInt32Value(t *testing.T) {
190+
const flagName = "limit"
191+
tests := []struct {
192+
name string
193+
flagValue *string
194+
want int32
195+
}{
196+
{
197+
name: "flag unset default value",
198+
flagValue: nil,
199+
want: 0,
200+
},
201+
{
202+
name: "flag value",
203+
flagValue: utils.Ptr("42"),
204+
want: 42,
205+
},
206+
}
207+
for _, tt := range tests {
208+
t.Run(tt.name, func(t *testing.T) {
209+
params := testparams.NewTestParams()
210+
cmd := func() *cobra.Command {
211+
cmd := &cobra.Command{
212+
Use: "greet",
213+
Short: "A simple greeting command",
214+
Long: "A simple greeting command",
215+
Run: func(_ *cobra.Command, _ []string) {
216+
fmt.Println("Hello world")
217+
},
218+
}
219+
cmd.Flags().Int32(flagName, 0, "limit")
220+
return cmd
221+
}()
222+
if tt.flagValue != nil {
223+
err := cmd.Flags().Set(flagName, *tt.flagValue)
224+
if err != nil {
225+
t.Error(err)
226+
}
227+
}
228+
229+
if got := FlagWithDefaultToInt32Value(params.Printer, cmd, flagName); got != tt.want {
230+
t.Errorf("FlagWithDefaultToInt32Value() = %v, want %v", got, tt.want)
231+
}
232+
})
233+
}
234+
}

0 commit comments

Comments
 (0)