Skip to content

Commit b255714

Browse files
refactor(rabbitmq): refactor pointer flags to be value instead
1 parent 10231b7 commit b255714

3 files changed

Lines changed: 15 additions & 20 deletions

File tree

internal/cmd/rabbitmq/instance/create/create.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type inputModel struct {
4545
PlanName string
4646
Version string
4747

48-
InstanceName *string
48+
InstanceName string
4949
EnableMonitoring *bool
5050
Graphite *string
5151
MetricsFrequency *int32
@@ -173,7 +173,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
173173

174174
model := inputModel{
175175
GlobalFlagModel: globalFlags,
176-
InstanceName: flags.FlagToStringPointer(p, cmd, instanceNameFlag),
176+
InstanceName: flags.FlagToStringValue(p, cmd, instanceNameFlag),
177177
EnableMonitoring: flags.FlagToBoolPointer(p, cmd, enableMonitoringFlag),
178178
MonitoringInstanceId: flags.FlagToStringPointer(p, cmd, monitoringInstanceIdFlag),
179179
Graphite: flags.FlagToStringPointer(p, cmd, graphiteFlag),
@@ -199,7 +199,7 @@ type rabbitMQClient interface {
199199
func buildRequest(ctx context.Context, model *inputModel, apiClient rabbitMQClient) (rabbitmq.ApiCreateInstanceRequest, error) {
200200
req := apiClient.CreateInstance(ctx, model.ProjectId, model.Region)
201201

202-
var planId *string
202+
var planId string
203203
var err error
204204

205205
offerings, err := apiClient.ListOfferings(ctx, model.ProjectId, model.Region).Execute()
@@ -208,20 +208,21 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient rabbitMQClie
208208
}
209209

210210
if model.PlanId == nil {
211-
planId, err = rabbitmqUtils.LoadPlanId(model.PlanName, model.Version, offerings)
211+
foundPlanId, err := rabbitmqUtils.LoadPlanId(model.PlanName, model.Version, offerings)
212212
if err != nil {
213213
var dsaInvalidPlanError *cliErr.DSAInvalidPlanError
214214
if !errors.As(err, &dsaInvalidPlanError) {
215215
return req, fmt.Errorf("load plan ID: %w", err)
216216
}
217217
return req, err
218218
}
219+
planId = *foundPlanId
219220
} else {
220221
err := rabbitmqUtils.ValidatePlanId(*model.PlanId, offerings)
221222
if err != nil {
222223
return req, err
223224
}
224-
planId = model.PlanId
225+
planId = *model.PlanId
225226
}
226227

227228
var sgwAcl *string
@@ -230,7 +231,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient rabbitMQClie
230231
}
231232

232233
req = req.CreateInstancePayload(rabbitmq.CreateInstancePayload{
233-
InstanceName: *model.InstanceName,
234+
InstanceName: model.InstanceName,
234235
Parameters: &rabbitmq.InstanceParameters{
235236
EnableMonitoring: model.EnableMonitoring,
236237
Graphite: model.Graphite,
@@ -241,7 +242,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient rabbitMQClie
241242
SgwAcl: sgwAcl,
242243
Syslog: model.Syslog,
243244
},
244-
PlanId: *planId,
245+
PlanId: planId,
245246
})
246247
return req, nil
247248
}

internal/cmd/rabbitmq/instance/create/create_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func newAPIMock(settings mockSettings) rabbitmq.DefaultAPI {
4141
var testProjectId = uuid.NewString()
4242
var testPlanId = uuid.NewString()
4343
var testMonitoringInstanceId = uuid.NewString()
44-
var testInstanceName = utils.Ptr("instance")
44+
var testInstanceName = "instance"
4545

4646
const testRegion = "eu01"
4747

@@ -73,7 +73,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
7373
Region: testRegion,
7474
Verbosity: globalflags.VerbosityDefault,
7575
},
76-
InstanceName: utils.Ptr("example-name"),
76+
InstanceName: "example-name",
7777
EnableMonitoring: utils.Ptr(true),
7878
Graphite: utils.Ptr("example-graphite"),
7979
MetricsFrequency: utils.Ptr(int32(100)),
@@ -161,7 +161,7 @@ func TestParseInput(t *testing.T) {
161161
ProjectId: testProjectId,
162162
Verbosity: globalflags.VerbosityDefault,
163163
},
164-
InstanceName: utils.Ptr("example-name"),
164+
InstanceName: "example-name",
165165
PlanId: utils.Ptr(testPlanId),
166166
},
167167
},
@@ -183,7 +183,7 @@ func TestParseInput(t *testing.T) {
183183
Verbosity: globalflags.VerbosityDefault,
184184
},
185185
PlanId: utils.Ptr(testPlanId),
186-
InstanceName: utils.Ptr(""),
186+
InstanceName: "",
187187
EnableMonitoring: utils.Ptr(false),
188188
Graphite: utils.Ptr(""),
189189
MetricsFrequency: utils.Ptr(int32(0)),
@@ -299,7 +299,6 @@ func TestBuildRequest(t *testing.T) {
299299
isValid bool
300300
}{
301301
{
302-
//TODO: nil pointer due to plugins in model
303302
description: "base",
304303
model: fixtureInputModel(),
305304
expectedRequest: fixtureRequest(),
@@ -402,7 +401,7 @@ func TestBuildRequest(t *testing.T) {
402401
},
403402
},
404403
expectedRequest: testClient.DefaultAPI.CreateInstance(testCtx, testProjectId, testRegion).
405-
CreateInstancePayload(rabbitmq.CreateInstancePayload{InstanceName: *testInstanceName, PlanId: testPlanId, Parameters: &rabbitmq.InstanceParameters{}}),
404+
CreateInstancePayload(rabbitmq.CreateInstancePayload{InstanceName: testInstanceName, PlanId: testPlanId, Parameters: &rabbitmq.InstanceParameters{}}),
406405
},
407406
}
408407

internal/pkg/services/rabbitmq/utils/utils.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,15 @@ func LoadPlanId(planName, version string, offerings *rabbitmq.ListOfferingsRespo
6262
}
6363
}
6464

65-
type RabbitMQClient interface {
66-
GetInstance(ctx context.Context, projectId, region, instanceId string) rabbitmq.ApiGetInstanceRequest
67-
GetCredentials(ctx context.Context, projectId, region, instanceId, credentialsId string) rabbitmq.ApiGetCredentialsRequest
68-
}
69-
70-
func GetInstanceName(ctx context.Context, apiClient RabbitMQClient, projectId, region, instanceId string) (string, error) {
65+
func GetInstanceName(ctx context.Context, apiClient rabbitmq.DefaultAPI, projectId, region, instanceId string) (string, error) {
7166
resp, err := apiClient.GetInstance(ctx, projectId, region, instanceId).Execute()
7267
if err != nil {
7368
return "", fmt.Errorf("get RabbitMQ instance: %w", err)
7469
}
7570
return resp.Name, nil
7671
}
7772

78-
func GetCredentialsUsername(ctx context.Context, apiClient RabbitMQClient, projectId, region, instanceId, credentialsId string) (string, error) {
73+
func GetCredentialsUsername(ctx context.Context, apiClient rabbitmq.DefaultAPI, projectId, region, instanceId, credentialsId string) (string, error) {
7974
resp, err := apiClient.GetCredentials(ctx, projectId, region, instanceId, credentialsId).Execute()
8075
if err != nil {
8176
return "", fmt.Errorf("get RabbitMQ credentials: %w", err)

0 commit comments

Comments
 (0)