Skip to content

Commit a87cd60

Browse files
committed
fix(cdn): rename sortBy params, use EnumSliceToStringSlice
1 parent 82f7d49 commit a87cd60

File tree

2 files changed

+20
-34
lines changed

2 files changed

+20
-34
lines changed

internal/cmd/beta/cdn/distribution/list/list.go

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/stackitcloud/stackit-cli/internal/pkg/services/cdn/client"
1717
"github.com/stackitcloud/stackit-cli/internal/pkg/tables"
1818
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"
19+
sdkUtils "github.com/stackitcloud/stackit-sdk-go/core/utils"
1920
"github.com/stackitcloud/stackit-sdk-go/services/cdn"
2021
)
2122

@@ -70,11 +71,11 @@ func NewCmd(params *params.CmdParams) *cobra.Command {
7071
return cmd
7172
}
7273

73-
var sortByFlagOptions = []string{"id", "created", "updated", "origin-url", "status"}
74+
var sortByFlagOptions = []string{"id", "createdAt", "updatedAt", "originUrl", "status", "originUrlRelated"}
7475

7576
func configureFlags(cmd *cobra.Command) {
7677
// same default as apiClient
77-
cmd.Flags().Var(flags.EnumFlag(false, "created", sortByFlagOptions...), sortByFlag, fmt.Sprintf("Sort entries by a specific field, one of %q", sortByFlagOptions))
78+
cmd.Flags().Var(flags.EnumFlag(false, "createdAt", sortByFlagOptions...), sortByFlag, fmt.Sprintf("Sort entries by a specific field, one of %q", sortByFlagOptions))
7879
}
7980

8081
func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel, error) {
@@ -94,31 +95,14 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
9495

9596
func buildRequest(ctx context.Context, model *inputModel, apiClient *cdn.APIClient, nextPageID cdn.ListDistributionsResponseGetNextPageIdentifierAttributeType) cdn.ApiListDistributionsRequest {
9697
req := apiClient.ListDistributions(ctx, model.GlobalFlagModel.ProjectId)
97-
req = req.SortBy(toAPISortBy(model.SortBy))
98+
req = req.SortBy(model.SortBy)
9899
req = req.PageSize(100)
99100
if nextPageID != nil {
100101
req = req.PageIdentifier(*nextPageID)
101102
}
102103
return req
103104
}
104105

105-
func toAPISortBy(sortBy string) string {
106-
switch sortBy {
107-
case "id":
108-
return "id"
109-
case "created":
110-
return "createdAt"
111-
case "updated":
112-
return "updatedAt"
113-
case "origin-url":
114-
return "originUrl"
115-
case "status":
116-
return "status"
117-
default:
118-
panic("invalid sortBy value, programmer error")
119-
}
120-
}
121-
122106
func outputResult(p *print.Printer, outputFormat string, distributions []cdn.Distribution) error {
123107
if distributions == nil {
124108
distributions = make([]cdn.Distribution, 0) // otherwise prints null in json output
@@ -133,11 +117,7 @@ func outputResult(p *print.Printer, outputFormat string, distributions []cdn.Dis
133117
table.SetHeader("ID", "REGIONS", "STATUS")
134118
for i := range distributions {
135119
d := &distributions[i]
136-
regions := make([]string, 0, len(*d.Config.Regions))
137-
for _, r := range *d.Config.Regions {
138-
regions = append(regions, string(r))
139-
}
140-
joinedRegions := strings.Join(regions, ", ")
120+
joinedRegions := strings.Join(sdkUtils.EnumSliceToStringSlice(*d.Config.Regions), ", ")
141121
table.AddRow(
142122
utils.PtrString(d.Id),
143123
joinedRegions,

internal/cmd/beta/cdn/distribution/list/list_test.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func fixtureInputModel(mods ...func(m *inputModel)) *inputModel {
6060
ProjectId: testProjectId,
6161
Verbosity: globalflags.VerbosityDefault,
6262
},
63-
SortBy: "created",
63+
SortBy: "createdAt",
6464
}
6565
for _, mod := range mods {
6666
mod(m)
@@ -123,9 +123,9 @@ func TestParseInput(t *testing.T) {
123123
},
124124
{
125125
description: "sort by origin-url",
126-
flagValues: fixtureFlagValues(flagSortBy("origin-url")),
126+
flagValues: fixtureFlagValues(flagSortBy("originUrl")),
127127
isValid: true,
128-
expected: fixtureInputModel(inputSortBy("origin-url")),
128+
expected: fixtureInputModel(inputSortBy("originUrl")),
129129
},
130130
{
131131
description: "sort by status",
@@ -135,15 +135,21 @@ func TestParseInput(t *testing.T) {
135135
},
136136
{
137137
description: "sort by created",
138-
flagValues: fixtureFlagValues(flagSortBy("created")),
138+
flagValues: fixtureFlagValues(flagSortBy("createdAt")),
139139
isValid: true,
140-
expected: fixtureInputModel(inputSortBy("created")),
140+
expected: fixtureInputModel(inputSortBy("createdAt")),
141141
},
142142
{
143143
description: "sort by updated",
144-
flagValues: fixtureFlagValues(flagSortBy("updated")),
144+
flagValues: fixtureFlagValues(flagSortBy("updatedAt")),
145145
isValid: true,
146-
expected: fixtureInputModel(inputSortBy("updated")),
146+
expected: fixtureInputModel(inputSortBy("updatedAt")),
147+
},
148+
{
149+
description: "sort by originUrlRelated",
150+
flagValues: fixtureFlagValues(flagSortBy("originUrlRelated")),
151+
isValid: true,
152+
expected: fixtureInputModel(inputSortBy("originUrlRelated")),
147153
},
148154
{
149155
description: "invalid sort by",
@@ -158,7 +164,7 @@ func TestParseInput(t *testing.T) {
158164
},
159165
),
160166
isValid: true,
161-
expected: fixtureInputModel(inputSortBy("created")),
167+
expected: fixtureInputModel(inputSortBy("createdAt")),
162168
},
163169
}
164170

@@ -183,7 +189,7 @@ func TestBuildRequest(t *testing.T) {
183189
},
184190
{
185191
description: "sort by updatedAt",
186-
inputModel: fixtureInputModel(inputSortBy("updated")),
192+
inputModel: fixtureInputModel(inputSortBy("updatedAt")),
187193
expected: fixtureRequest(requestSortBy("updatedAt")),
188194
},
189195
{

0 commit comments

Comments
 (0)