Skip to content

Commit 82b7bbe

Browse files
committed
chore(mariadb): refactor pkg
1 parent 13de539 commit 82b7bbe

3 files changed

Lines changed: 39 additions & 44 deletions

File tree

internal/pkg/services/mariadb/client/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ import (
1010
)
1111

1212
func ConfigureClient(p *print.Printer, cliVersion string) (*mariadb.APIClient, error) {
13-
return genericclient.ConfigureClientGeneric(p, cliVersion, viper.GetString(config.MariaDBCustomEndpointKey), true, genericclient.CreateApiClient[*mariadb.APIClient](mariadb.NewAPIClient))
13+
return genericclient.ConfigureClientGeneric(p, cliVersion, viper.GetString(config.MariaDBCustomEndpointKey), true, mariadb.NewAPIClient)
1414
}

internal/pkg/services/mariadb/utils/utils.go

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ const (
1515
)
1616

1717
func ValidatePlanId(planId string, offerings *mariadb.ListOfferingsResponse) error {
18-
for _, offer := range *offerings.Offerings {
19-
for _, plan := range *offer.Plans {
20-
if plan.Id != nil && strings.EqualFold(*plan.Id, planId) {
18+
for _, offer := range offerings.Offerings {
19+
for _, plan := range offer.Plans {
20+
if strings.EqualFold(plan.Id, planId) {
2121
return nil
2222
}
2323
}
@@ -33,21 +33,18 @@ func LoadPlanId(planName, version string, offerings *mariadb.ListOfferingsRespon
3333
availableVersions := ""
3434
availablePlanNames := ""
3535
isValidVersion := false
36-
for _, offer := range *offerings.Offerings {
37-
if !strings.EqualFold(*offer.Version, version) {
38-
availableVersions = fmt.Sprintf("%s\n- %s", availableVersions, *offer.Version)
36+
for _, offer := range offerings.Offerings {
37+
if !strings.EqualFold(offer.Version, version) {
38+
availableVersions = fmt.Sprintf("%s\n- %s", availableVersions, offer.Version)
3939
continue
4040
}
4141
isValidVersion = true
4242

43-
for _, plan := range *offer.Plans {
44-
if plan.Name == nil {
45-
continue
43+
for _, plan := range offer.Plans {
44+
if strings.EqualFold(plan.Name, planName) {
45+
return &plan.Id, nil
4646
}
47-
if strings.EqualFold(*plan.Name, planName) && plan.Id != nil {
48-
return plan.Id, nil
49-
}
50-
availablePlanNames = fmt.Sprintf("%s\n- %s", availablePlanNames, *plan.Name)
47+
availablePlanNames = fmt.Sprintf("%s\n- %s", availablePlanNames, plan.Name)
5148
}
5249
}
5350

@@ -65,23 +62,18 @@ func LoadPlanId(planName, version string, offerings *mariadb.ListOfferingsRespon
6562
}
6663
}
6764

68-
type MariaDBClient interface {
69-
GetInstanceExecute(ctx context.Context, projectId, instanceId string) (*mariadb.Instance, error)
70-
GetCredentialsExecute(ctx context.Context, projectId, instanceId, credentialsId string) (*mariadb.CredentialsResponse, error)
71-
}
72-
73-
func GetInstanceName(ctx context.Context, apiClient MariaDBClient, projectId, instanceId string) (string, error) {
74-
resp, err := apiClient.GetInstanceExecute(ctx, projectId, instanceId)
65+
func GetInstanceName(ctx context.Context, apiClient mariadb.DefaultAPI, projectId, instanceId string) (string, error) {
66+
resp, err := apiClient.GetInstance(ctx, projectId, instanceId).Execute()
7567
if err != nil {
7668
return "", fmt.Errorf("get MariaDB instance: %w", err)
7769
}
78-
return *resp.Name, nil
70+
return resp.Name, nil
7971
}
8072

81-
func GetCredentialsUsername(ctx context.Context, apiClient MariaDBClient, projectId, instanceId, credentialsId string) (string, error) {
82-
resp, err := apiClient.GetCredentialsExecute(ctx, projectId, instanceId, credentialsId)
73+
func GetCredentialsUsername(ctx context.Context, apiClient mariadb.DefaultAPI, projectId, instanceId, credentialsId string) (string, error) {
74+
resp, err := apiClient.GetCredentials(ctx, projectId, instanceId, credentialsId).Execute()
8375
if err != nil {
8476
return "", fmt.Errorf("get MariaDB credentials: %w", err)
8577
}
86-
return *resp.Raw.Credentials.Username, nil
78+
return resp.Raw.Credentials.Username, nil
8779
}

internal/pkg/services/mariadb/utils/utils_test.go

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,28 @@ const (
2222
testCredentialsUsername = "username"
2323
)
2424

25-
type mariaDBClientMocked struct {
25+
type mockSettings struct {
2626
getInstanceFails bool
2727
getInstanceResp *mariadb.Instance
2828
getCredentialsFails bool
2929
getCredentialsResp *mariadb.CredentialsResponse
3030
}
3131

32-
func (m *mariaDBClientMocked) GetInstanceExecute(_ context.Context, _, _ string) (*mariadb.Instance, error) {
33-
if m.getInstanceFails {
34-
return nil, fmt.Errorf("could not get instance")
35-
}
36-
return m.getInstanceResp, nil
37-
}
38-
39-
func (m *mariaDBClientMocked) GetCredentialsExecute(_ context.Context, _, _, _ string) (*mariadb.CredentialsResponse, error) {
40-
if m.getCredentialsFails {
41-
return nil, fmt.Errorf("could not get user")
32+
func newAPIMock(m mockSettings) mariadb.DefaultAPI {
33+
return &mariadb.DefaultAPIServiceMock{
34+
GetInstanceExecuteMock: utils.Ptr(func(_ mariadb.ApiGetInstanceRequest) (*mariadb.Instance, error) {
35+
if m.getInstanceFails {
36+
return nil, fmt.Errorf("could not get instance")
37+
}
38+
return m.getInstanceResp, nil
39+
}),
40+
GetCredentialsExecuteMock: utils.Ptr(func(_ mariadb.ApiGetCredentialsRequest) (*mariadb.CredentialsResponse, error) {
41+
if m.getCredentialsFails {
42+
return nil, fmt.Errorf("could not get user")
43+
}
44+
return m.getCredentialsResp, nil
45+
}),
4246
}
43-
return m.getCredentialsResp, nil
4447
}
4548

4649
func TestGetInstanceName(t *testing.T) {
@@ -54,7 +57,7 @@ func TestGetInstanceName(t *testing.T) {
5457
{
5558
description: "base",
5659
getInstanceResp: &mariadb.Instance{
57-
Name: utils.Ptr(testInstanceName),
60+
Name: testInstanceName,
5861
},
5962
isValid: true,
6063
expectedOutput: testInstanceName,
@@ -68,12 +71,12 @@ func TestGetInstanceName(t *testing.T) {
6871

6972
for _, tt := range tests {
7073
t.Run(tt.description, func(t *testing.T) {
71-
client := &mariaDBClientMocked{
74+
settings := mockSettings{
7275
getInstanceFails: tt.getInstanceFails,
7376
getInstanceResp: tt.getInstanceResp,
7477
}
7578

76-
output, err := GetInstanceName(context.Background(), client, testProjectId, testInstanceId)
79+
output, err := GetInstanceName(context.Background(), newAPIMock(settings), testProjectId, testInstanceId)
7780

7881
if tt.isValid && err != nil {
7982
t.Errorf("failed on valid input")
@@ -103,8 +106,8 @@ func TestGetCredentialsUsername(t *testing.T) {
103106
description: "base",
104107
getCredentialsResp: &mariadb.CredentialsResponse{
105108
Raw: &mariadb.RawCredentials{
106-
Credentials: &mariadb.Credentials{
107-
Username: utils.Ptr(testCredentialsUsername),
109+
Credentials: mariadb.Credentials{
110+
Username: testCredentialsUsername,
108111
},
109112
},
110113
},
@@ -120,12 +123,12 @@ func TestGetCredentialsUsername(t *testing.T) {
120123

121124
for _, tt := range tests {
122125
t.Run(tt.description, func(t *testing.T) {
123-
client := &mariaDBClientMocked{
126+
settings := mockSettings{
124127
getCredentialsFails: tt.getCredentialsFails,
125128
getCredentialsResp: tt.getCredentialsResp,
126129
}
127130

128-
output, err := GetCredentialsUsername(context.Background(), client, testProjectId, testInstanceId, testCredentialsId)
131+
output, err := GetCredentialsUsername(context.Background(), newAPIMock(settings), testProjectId, testInstanceId, testCredentialsId)
129132

130133
if tt.isValid && err != nil {
131134
t.Errorf("failed on valid input")

0 commit comments

Comments
 (0)