Skip to content

Commit f67b511

Browse files
authored
task: move the time parser to the convert package (#2733)
1 parent e626b89 commit f67b511

30 files changed

+179
-144
lines changed

internal/cli/atlas/accesslists/create.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import (
2222
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli"
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/convert"
2526
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
2627
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
2728
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
28-
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/time"
2929
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
3030
"github.com/spf13/cobra"
3131
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"
@@ -79,7 +79,7 @@ func (opts *CreateOpts) newProjectIPAccessList() ([]*atlasv2.NetworkPermissionEn
7979
Comment: &opts.comment,
8080
}
8181
if opts.deleteAfter != "" {
82-
deleteAfterDate, err := time.ParseTimestamp(opts.deleteAfter)
82+
deleteAfterDate, err := convert.ParseTimestamp(opts.deleteAfter)
8383
if err != nil {
8484
return nil, err
8585
}

internal/cli/atlas/alerts/acknowledge.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ import (
2222
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli"
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/convert"
2526
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
26-
store "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store/atlas"
27-
customTime "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/time"
27+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
2828
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
2929
"github.com/spf13/cobra"
3030
"go.mongodb.org/atlas-sdk/v20231115007/admin"
@@ -76,12 +76,12 @@ func (opts *AcknowledgeOpts) newAcknowledgeRequest() (*admin.AlertViewForNdsGrou
7676
const years = 100
7777
opts.until = time.Now().AddDate(years, 1, 1).Format(time.RFC3339)
7878
}
79-
time, err := customTime.ParseTimestamp(opts.until)
79+
until, err := convert.ParseTimestamp(opts.until)
8080
if err != nil {
8181
return nil, err
8282
}
8383
return &admin.AlertViewForNdsGroup{
84-
AcknowledgedUntil: &time,
84+
AcknowledgedUntil: &until,
8585
AcknowledgementComment: &opts.comment,
8686
}, nil
8787
}

internal/cli/atlas/alerts/acknowledge_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222

2323
"github.com/golang/mock/gomock"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
25-
mocks "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks/atlas"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/test"
2727
"github.com/stretchr/testify/require"
2828
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"

internal/cli/atlas/alerts/describe.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
25-
store "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store/atlas"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
2727
"github.com/spf13/cobra"
2828
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"

internal/cli/atlas/alerts/describe_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"github.com/golang/mock/gomock"
2525
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
27-
mocks "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks/atlas"
27+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks"
2828
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
2929
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/test"
3030
"github.com/stretchr/testify/assert"

internal/cli/atlas/alerts/list.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ import (
2222
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
25-
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
26-
store "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store/atlas"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
2726
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
2827
"github.com/spf13/cobra"
2928
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"
@@ -54,7 +53,9 @@ func (opts *ListOpts) Run() error {
5453
GroupId: opts.ConfigProjectID(),
5554
ItemsPerPage: &opts.ItemsPerPage,
5655
PageNum: &opts.PageNum,
57-
Status: pointer.GetStringPointerIfNotEmpty(opts.status),
56+
}
57+
if opts.status != "" {
58+
params.Status = &opts.status
5859
}
5960

6061
r, err := opts.store.Alerts(params)

internal/cli/atlas/alerts/list_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222

2323
"github.com/golang/mock/gomock"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli"
25-
mocks "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks/atlas"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
2727
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/test"
2828
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"

internal/cli/atlas/alerts/unacknowledge.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
25-
store "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store/atlas"
25+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
2727
"github.com/spf13/cobra"
2828
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"

internal/cli/atlas/alerts/unacknowledge_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"testing"
2121

2222
"github.com/golang/mock/gomock"
23-
mocks "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks/atlas"
23+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/mocks"
2424
atlasv2 "go.mongodb.org/atlas-sdk/v20231115007/admin"
2525
)
2626

internal/cli/atlas/datalakepipelines/availablesnapshots/list.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ import (
2525
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2727
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
28+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/convert"
2829
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
2930
store "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store/atlas"
30-
customTime "github.com/mongodb/mongodb-atlas-cli/atlascli/internal/time"
3131
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
3232
"github.com/spf13/cobra"
3333
)
@@ -57,14 +57,14 @@ func (opts *ListOpts) initStore(ctx context.Context) func() error {
5757

5858
func convertTime(value string) *time.Time {
5959
var result *time.Time
60-
if completedAfter, err := customTime.ParseTimestamp(value); err == nil {
60+
if completedAfter, err := convert.ParseTimestamp(value); err == nil {
6161
result = &completedAfter
6262
}
6363
return result
6464
}
6565

6666
func (opts *ListOpts) validate() error {
67-
if _, err := customTime.ParseTimestamp(opts.completedAfter); opts.completedAfter != "" && err != nil {
67+
if _, err := convert.ParseTimestamp(opts.completedAfter); opts.completedAfter != "" && err != nil {
6868
return fmt.Errorf("%w: expected format 'YYYY-MM-DD' got '%s'", ErrCompletedAfterInvalidFormat, opts.completedAfter)
6969
}
7070
return nil

internal/cli/atlas/dbusers/create.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
2525
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/convert"
2626
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
27-
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
2827
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
2928
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/telemetry"
3029
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
@@ -106,18 +105,29 @@ func (opts *CreateOpts) newDatabaseUser() *atlasv2.CloudDatabaseUser {
106105
authDB = convert.ExternalAuthDB
107106
}
108107

109-
return &atlasv2.CloudDatabaseUser{
110-
Roles: pointer.Get(convert.BuildAtlasRoles(opts.roles)),
111-
Scopes: pointer.Get(convert.BuildAtlasScopes(opts.scopes)),
108+
roles := convert.BuildAtlasRoles(opts.roles)
109+
scopes := convert.BuildAtlasScopes(opts.scopes)
110+
u := &atlasv2.CloudDatabaseUser{
111+
Roles: &roles,
112+
Scopes: &scopes,
112113
GroupId: opts.ConfigProjectID(),
113114
Username: opts.username,
114-
Password: pointer.GetStringPointerIfNotEmpty(opts.password),
115-
X509Type: pointer.GetStringPointerIfNotEmpty(opts.x509Type),
116-
AwsIAMType: pointer.GetStringPointerIfNotEmpty(opts.awsIamType),
117-
LdapAuthType: pointer.GetStringPointerIfNotEmpty(opts.ldapType),
118115
DeleteAfterDate: convert.ParseDeleteAfter(opts.deleteAfter),
119116
DatabaseName: authDB,
120117
}
118+
if opts.password != "" {
119+
u.Password = &opts.password
120+
}
121+
if opts.x509Type != "" {
122+
u.X509Type = &opts.x509Type
123+
}
124+
if opts.awsIamType != "" {
125+
u.AwsIAMType = &opts.awsIamType
126+
}
127+
if opts.ldapType != "" {
128+
u.LdapAuthType = &opts.ldapType
129+
}
130+
return u
121131
}
122132

123133
func (opts *CreateOpts) Prompt() error {

internal/cli/atlas/dbusers/update.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
2424
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/convert"
2525
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
26-
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
2726
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
2827
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/usage"
2928
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/validate"
@@ -80,15 +79,20 @@ func (opts *UpdateOpts) update(out *admin.CloudDatabaseUser) {
8079
out.Username = opts.currentUsername
8180
}
8281
if opts.password != "" {
83-
out.Password = pointer.GetStringPointerIfNotEmpty(opts.password)
82+
out.Password = &opts.password
8483
}
85-
out.Scopes = pointer.Get(convert.BuildAtlasScopes(opts.scopes))
86-
out.Roles = pointer.Get(convert.BuildAtlasRoles(opts.roles))
84+
85+
roles := convert.BuildAtlasRoles(opts.roles)
86+
out.Roles = &roles
87+
scopes := convert.BuildAtlasScopes(opts.scopes)
88+
out.Scopes = &scopes
8789
out.DatabaseName = opts.authDB
8890
if opts.authDB == "" {
8991
out.DatabaseName = convert.GetAuthDB(out)
9092
}
91-
out.X509Type = pointer.GetStringPointerIfNotEmpty(opts.x509Type)
93+
if opts.x509Type != "" {
94+
out.X509Type = &opts.x509Type
95+
}
9296
}
9397

9498
func (opts *UpdateOpts) validateAuthDB() error {

internal/cli/atlas/deployments/pause_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func TestPause_RunAtlas(t *testing.T) {
109109
PauseCluster(projectID, deploymentName).
110110
Return(
111111
&admin.AdvancedClusterDescription{
112-
Name: pointer.GetStringPointerIfNotEmpty(deploymentName),
112+
Name: pointer.Get(deploymentName),
113113
}, nil).
114114
Times(1)
115115

internal/cli/atlas/deployments/search/indexes/describe_test.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,7 @@ func TestDescribe_RunLocal(t *testing.T) {
4141
ctx := context.Background()
4242

4343
const (
44-
expectedIndexName = "idx1"
4544
expectedLocalDeployment = "localDeployment1"
46-
expectedDB = "db1"
47-
expectedCollection = "col1"
4845
expectedStatus = "STEADY"
4946
expectedType = "search"
5047
)
@@ -108,11 +105,11 @@ func TestDescribe_RunLocal(t *testing.T) {
108105

109106
expected := &atlasv2.ClusterSearchIndex{
110107
Name: "name",
111-
IndexID: pointer.GetStringPointerIfNotEmpty("test"),
108+
IndexID: pointer.Get("test"),
112109
CollectionName: "coll",
113110
Database: "db",
114-
Status: pointer.GetStringPointerIfNotEmpty(expectedStatus),
115-
Type: pointer.GetStringPointerIfNotEmpty(expectedType),
111+
Status: pointer.Get(expectedStatus),
112+
Type: pointer.Get(expectedType),
116113
}
117114

118115
mockMongodbClient.
@@ -170,13 +167,13 @@ func TestDescribe_RunAtlas(t *testing.T) {
170167
Name: "name",
171168
Database: "db",
172169
CollectionName: "coll",
173-
IndexID: pointer.GetStringPointerIfNotEmpty("test"),
170+
IndexID: pointer.Get("test"),
174171
}, nil).
175172
Times(1)
176173

177174
expected := &atlasv2.ClusterSearchIndex{
178175
Name: "name",
179-
IndexID: pointer.GetStringPointerIfNotEmpty("test"),
176+
IndexID: pointer.Get("test"),
180177
CollectionName: "coll",
181178
Database: "db",
182179
}

internal/cli/atlas/deployments/search/indexes/list_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ func TestList_RunLocal(t *testing.T) {
120120
expected := []*atlasv2.ClusterSearchIndex{
121121
{
122122
Name: expectedName,
123-
IndexID: pointer.GetStringPointerIfNotEmpty(expectedID),
123+
IndexID: pointer.Get(expectedID),
124124
CollectionName: expectedCollection,
125125
Database: expectedDB,
126-
Status: pointer.GetStringPointerIfNotEmpty(expectedStatus),
127-
Type: pointer.GetStringPointerIfNotEmpty(expectedType),
126+
Status: pointer.Get(expectedStatus),
127+
Type: pointer.Get(expectedType),
128128
},
129129
}
130130

@@ -189,15 +189,15 @@ func TestList_RunAtlas(t *testing.T) {
189189
Name: expectedName,
190190
Database: expectedDB,
191191
CollectionName: expectedCollection,
192-
IndexID: pointer.GetStringPointerIfNotEmpty(expectedID),
192+
IndexID: pointer.Get(expectedID),
193193
},
194194
}, nil).
195195
Times(1)
196196

197197
expected := []*atlasv2.ClusterSearchIndex{
198198
{
199199
Name: expectedName,
200-
IndexID: pointer.GetStringPointerIfNotEmpty(expectedID),
200+
IndexID: pointer.Get(expectedID),
201201
CollectionName: expectedCollection,
202202
Database: expectedDB,
203203
},

internal/cli/atlas/deployments/start_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ func TestStart_RunAtlas(t *testing.T) {
177177
StartCluster(projectID, deploymentName).
178178
Return(
179179
&admin.AdvancedClusterDescription{
180-
Name: pointer.GetStringPointerIfNotEmpty(deploymentName),
180+
Name: pointer.Get(deploymentName),
181181
}, nil).
182182
Times(1)
183183

internal/cli/atlas/events/list.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli"
2222
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/require"
2323
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/config"
24+
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/convert"
2425
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/flag"
2526
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/pointer"
2627
"github.com/mongodb/mongodb-atlas-cli/atlascli/internal/store"
@@ -82,15 +83,22 @@ func (opts *ListOpts) NewOrgListOptions() admin.ListOrganizationEventsApiParams
8283
p := admin.ListOrganizationEventsApiParams{
8384
OrgId: opts.orgID,
8485
EventType: eventType,
85-
MaxDate: pointer.StringToTimePointer(opts.MaxDate),
86-
MinDate: pointer.StringToTimePointer(opts.MinDate),
86+
}
87+
if maxDate, err := convert.ParseTimestamp(opts.MaxDate); err == nil {
88+
p.MaxDate = pointer.Get(maxDate)
89+
}
90+
if minDate, err := convert.ParseTimestamp(opts.MinDate); err == nil {
91+
p.MinDate = pointer.Get(minDate)
8792
}
8893
if opts.ItemsPerPage > 0 {
8994
p.ItemsPerPage = &opts.ItemsPerPage
9095
}
9196
if opts.PageNum > 0 {
9297
p.PageNum = &opts.PageNum
9398
}
99+
if opts.OmitCount {
100+
p.IncludeCount = pointer.Get(false)
101+
}
94102
return p
95103
}
96104

@@ -102,16 +110,19 @@ func (opts *ListOpts) NewProjectListOptions() admin.ListProjectEventsApiParams {
102110
p := admin.ListProjectEventsApiParams{
103111
GroupId: opts.projectID,
104112
EventType: eventType,
105-
MaxDate: pointer.StringToTimePointer(opts.MaxDate),
106-
MinDate: pointer.StringToTimePointer(opts.MinDate),
113+
}
114+
if maxDate, err := convert.ParseTimestamp(opts.MaxDate); err == nil {
115+
p.MaxDate = pointer.Get(maxDate)
116+
}
117+
if minDate, err := convert.ParseTimestamp(opts.MinDate); err == nil {
118+
p.MinDate = pointer.Get(minDate)
107119
}
108120
if opts.ItemsPerPage > 0 {
109121
p.ItemsPerPage = &opts.ItemsPerPage
110122
}
111123
if opts.PageNum > 0 {
112124
p.PageNum = &opts.PageNum
113125
}
114-
115126
if opts.OmitCount {
116127
p.IncludeCount = pointer.Get(false)
117128
}

0 commit comments

Comments
 (0)