Skip to content

Commit 90cbdf5

Browse files
committed
chore(logs): refactored access token create
1 parent ec6d17b commit 90cbdf5

2 files changed

Lines changed: 31 additions & 24 deletions

File tree

internal/cmd/logs/access_token/create/create.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type inputModel struct {
3535
InstanceId string
3636
Description *string
3737
DisplayName string
38-
Lifetime *int64
38+
Lifetime *int32
3939
Permissions []string
4040
}
4141

@@ -80,7 +80,7 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
8080
projectLabel = model.ProjectId
8181
}
8282

83-
instanceLabel, err := logsUtils.GetInstanceName(ctx, apiClient, model.ProjectId, model.Region, model.InstanceId)
83+
instanceLabel, err := logsUtils.GetInstanceName(ctx, apiClient.DefaultAPI, model.ProjectId, model.Region, model.InstanceId)
8484
if err != nil {
8585
params.Printer.Debug(print.ErrorLevel, "get instance name: %v", err)
8686
instanceLabel = model.InstanceId
@@ -110,7 +110,7 @@ func configureFlags(cmd *cobra.Command) {
110110
cmd.Flags().Var(flags.UUIDFlag(), instanceIdFlag, "ID of the Logs instance")
111111
cmd.Flags().String(displayNameFlag, "", "Display name for the access token")
112112
cmd.Flags().String(descriptionFlag, "", "Description of the access token")
113-
cmd.Flags().Int64(lifetimeFlag, 0, "Lifetime of the access token in days [1 - 180]")
113+
cmd.Flags().Int32(lifetimeFlag, 0, "Lifetime of the access token in days [1 - 180]")
114114
cmd.Flags().StringSlice(permissionsFlag, []string{}, `Permissions of the access token ["read" "write"]`)
115115

116116
err := flags.MarkFlagsRequired(cmd, instanceIdFlag, displayNameFlag, permissionsFlag)
@@ -128,7 +128,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
128128
DisplayName: flags.FlagToStringValue(p, cmd, displayNameFlag),
129129
InstanceId: flags.FlagToStringValue(p, cmd, instanceIdFlag),
130130
Description: flags.FlagToStringPointer(p, cmd, descriptionFlag),
131-
Lifetime: flags.FlagToInt64Pointer(p, cmd, lifetimeFlag),
131+
Lifetime: flags.FlagToInt32Pointer(p, cmd, lifetimeFlag),
132132
Permissions: flags.FlagToStringSliceValue(p, cmd, permissionsFlag),
133133
}
134134

@@ -137,13 +137,16 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
137137
}
138138

139139
func buildRequest(ctx context.Context, model *inputModel, apiClient *logs.APIClient) logs.ApiCreateAccessTokenRequest {
140-
req := apiClient.CreateAccessToken(ctx, model.ProjectId, model.Region, model.InstanceId)
141-
140+
req := apiClient.DefaultAPI.CreateAccessToken(ctx, model.ProjectId, model.Region, model.InstanceId)
141+
permissions := make([]logs.PermissionsInner, len(model.Permissions))
142+
for i, permission := range model.Permissions {
143+
permissions[i] = logs.PermissionsInner(permission)
144+
}
142145
return req.CreateAccessTokenPayload(logs.CreateAccessTokenPayload{
143146
Description: model.Description,
144-
DisplayName: &model.DisplayName,
147+
DisplayName: model.DisplayName,
145148
Lifetime: model.Lifetime,
146-
Permissions: &model.Permissions,
149+
Permissions: permissions,
147150
})
148151
}
149152

@@ -152,7 +155,7 @@ func outputResult(p *print.Printer, outputFormat, instanceLabel string, accessTo
152155
return fmt.Errorf("access token cannot be nil")
153156
}
154157
return p.OutputResult(outputFormat, accessToken, func() error {
155-
p.Outputf("Created access token for Logs instance %q.\n\nID: %s\nToken: %s\n", instanceLabel, utils.PtrValue(accessToken.Id), utils.PtrValue(accessToken.AccessToken))
158+
p.Outputf("Created access token for Logs instance %q.\n\nID: %s\nToken: %s\n", instanceLabel, accessToken.Id, utils.PtrValue(accessToken.AccessToken))
156159
return nil
157160
})
158161
}

internal/cmd/logs/access_token/create/create_test.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ type testCtxKey struct{}
2626

2727
var (
2828
testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
29-
testClient = &logs.APIClient{}
29+
testClient = &logs.APIClient{DefaultAPI: &logs.DefaultAPIService{}}
3030
testProjectId = uuid.NewString()
3131
testInstanceId = uuid.NewString()
3232
)
@@ -59,7 +59,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
5959
InstanceId: testInstanceId,
6060
Description: utils.Ptr(testDescription),
6161
DisplayName: testDisplayName,
62-
Lifetime: utils.Ptr(int64(0)),
62+
Lifetime: utils.Ptr(int32(0)),
6363
Permissions: []string{
6464
"read",
6565
"write",
@@ -72,7 +72,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
7272
}
7373

7474
func fixtureRequest(mods ...func(request *logs.ApiCreateAccessTokenRequest)) logs.ApiCreateAccessTokenRequest {
75-
request := testClient.CreateAccessToken(testCtx, testProjectId, testRegion, testInstanceId)
75+
request := testClient.DefaultAPI.CreateAccessToken(testCtx, testProjectId, testRegion, testInstanceId)
7676
request = request.CreateAccessTokenPayload(fixturePayload())
7777
for _, mod := range mods {
7878
mod(&request)
@@ -82,13 +82,13 @@ func fixtureRequest(mods ...func(request *logs.ApiCreateAccessTokenRequest)) log
8282

8383
func fixturePayload(mods ...func(payload *logs.CreateAccessTokenPayload)) logs.CreateAccessTokenPayload {
8484
payload := logs.CreateAccessTokenPayload{
85-
DisplayName: utils.Ptr(testDisplayName),
85+
DisplayName: testDisplayName,
8686
Description: utils.Ptr(testDescription),
87-
Lifetime: utils.Ptr(int64(0)),
88-
Permissions: utils.Ptr([]string{
87+
Lifetime: utils.Ptr(int32(0)),
88+
Permissions: []logs.PermissionsInner{
8989
"read",
9090
"write",
91-
}),
91+
},
9292
}
9393
for _, mod := range mods {
9494
mod(&payload)
@@ -192,7 +192,9 @@ func TestParseInput(t *testing.T) {
192192

193193
for _, tt := range tests {
194194
t.Run(tt.description, func(t *testing.T) {
195-
testutils.TestParseInput(t, NewCmd, parseInput, tt.expectedModel, tt.argValues, tt.flagValues, tt.isValid)
195+
testutils.TestParseInputWithOptions(t, NewCmd, parseInput, tt.expectedModel, tt.argValues, tt.flagValues, nil, tt.isValid, []testutils.TestingOption{
196+
testutils.WithCmpOptions(cmpopts.EquateEmpty()),
197+
})
196198
})
197199
}
198200
}
@@ -216,6 +218,8 @@ func TestBuildRequest(t *testing.T) {
216218
diff := cmp.Diff(tt.expectedRequest, request,
217219
cmp.AllowUnexported(tt.expectedRequest),
218220
cmpopts.EquateComparable(testCtx),
221+
cmpopts.IgnoreFields(tt.expectedRequest, "ApiService"),
222+
cmpopts.EquateEmpty(),
219223
)
220224
if diff != "" {
221225
t.Fatalf("Data does not match: %s", diff)
@@ -240,16 +244,16 @@ func TestOutputResult(t *testing.T) {
240244
args: args{
241245
instanceLabel: "",
242246
accessToken: utils.Ptr(logs.AccessToken{
243-
Id: utils.Ptr(uuid.NewString()),
244-
Permissions: utils.Ptr([]string{
247+
Id: uuid.NewString(),
248+
Permissions: []logs.PermissionsInner{
245249
"read",
246250
"write",
247-
}),
248-
DisplayName: utils.Ptr("Token"),
251+
},
252+
DisplayName: "Token",
249253
AccessToken: utils.Ptr("Secret access token"),
250-
Creator: utils.Ptr(uuid.NewString()),
251-
Expires: utils.Ptr(false),
252-
Status: utils.Ptr(logs.ACCESSTOKENSTATUS_ACTIVE),
254+
Creator: uuid.NewString(),
255+
Expires: false,
256+
Status: logs.ACCESSTOKENSTATUS_ACTIVE,
253257
}),
254258
},
255259
wantErr: false,

0 commit comments

Comments
 (0)