Skip to content

Commit 6ae5150

Browse files
committed
fix: remove v3 client from cli
1 parent 3782391 commit 6ae5150

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+157
-555
lines changed

go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ require (
88
github.com/AlecAivazis/survey/v2 v2.3.7
99
github.com/BurntSushi/toml v1.4.0
1010
github.com/MakeNowJust/heredoc v1.0.0
11-
github.com/algolia/algoliasearch-client-go/v3 v3.31.4
1211
github.com/algolia/algoliasearch-client-go/v4 v4.12.0
1312
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
1413
github.com/briandowns/spinner v1.23.2
@@ -21,7 +20,6 @@ require (
2120
github.com/mattn/go-isatty v0.0.20
2221
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
2322
github.com/mitchellh/go-homedir v1.1.0
24-
github.com/mitchellh/mapstructure v1.5.0
2523
github.com/muesli/reflow v0.3.0
2624
github.com/muesli/termenv v0.15.2
2725
github.com/sirupsen/logrus v1.9.3
@@ -59,6 +57,7 @@ require (
5957
github.com/magiconair/properties v1.8.9 // indirect
6058
github.com/mailru/easyjson v0.7.7 // indirect
6159
github.com/mattn/go-runewidth v0.0.16 // indirect
60+
github.com/mitchellh/mapstructure v1.5.0 // indirect
6261
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
6362
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
6463
github.com/rivo/uniseg v0.4.7 // indirect

go.sum

-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ
66
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
77
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s=
88
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
9-
github.com/algolia/algoliasearch-client-go/v3 v3.31.4 h1:UJhx6AhZCYf0qZygDz2c1x1+1q2q2sfzsRaQM6yswWk=
10-
github.com/algolia/algoliasearch-client-go/v3 v3.31.4/go.mod h1:i7tLoP7TYDmHX3Q7vkIOL4syVse/k5VJ+k0i8WqFiJk=
119
github.com/algolia/algoliasearch-client-go/v4 v4.12.0 h1:YbLMyYZ7ohBTCEBIl3frF2Ga92ulGFev1tGe8SopF7Y=
1210
github.com/algolia/algoliasearch-client-go/v4 v4.12.0/go.mod h1:UsYoWx3gl5nyWalsOI85b7NGW4t1uaN05vydu9aPfGM=
1311
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
@@ -203,7 +201,6 @@ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
203201
gopkg.in/segmentio/analytics-go.v3 v3.1.0 h1:UzxH1uaGZRpMKDhJyBz0pexz6yUoBU3x8bJsRk/HV6U=
204202
gopkg.in/segmentio/analytics-go.v3 v3.1.0/go.mod h1:4QqqlTlSSpVlWA9/9nDcPw+FkM2yv1NQoYjUbL9/JAw=
205203
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
206-
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
207204
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
208205
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
209206
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

pkg/auth/auth_check.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func CheckACLs(cmd *cobra.Command, f *cmdutil.Factory) error {
8181
if err != nil {
8282
return err
8383
}
84-
_, err = client.ListAPIKeys()
84+
_, err = client.ListApiKeys()
8585
if err == nil {
8686
return nil // Admin API Key, no need to check ACLs
8787
}
@@ -92,12 +92,21 @@ func CheckACLs(cmd *cobra.Command, f *cmdutil.Factory) error {
9292
}
9393

9494
// Check the ACLs of the provided API Key
95-
apiKey, err := client.GetAPIKey(f.Config.Profile().GetAPIKey())
95+
key, err := f.Config.Profile().GetAPIKey()
9696
if err != nil {
9797
return err
9898
}
99+
apiKey, err := client.GetApiKey(client.NewApiGetApiKeyRequest(key))
100+
if err != nil {
101+
return err
102+
}
103+
104+
var hasAcls []string
105+
for _, acl := range apiKey.Acl {
106+
hasAcls = append(hasAcls, string(acl))
107+
}
99108

100-
missingACLs := utils.Differences(neededACLs, apiKey.ACL)
109+
missingACLs := utils.Differences(neededACLs, hasAcls)
101110
if len(missingACLs) > 0 {
102111
return errMissingACLs(missingACLs)
103112
}

pkg/auth/auth_check_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package auth
33
import (
44
"testing"
55

6-
"github.com/algolia/algoliasearch-client-go/v3/algolia/search"
6+
"github.com/algolia/algoliasearch-client-go/v4/algolia/search"
77
"github.com/algolia/cli/pkg/httpmock"
88
"github.com/algolia/cli/test"
99

@@ -16,7 +16,7 @@ func Test_CheckACLs(t *testing.T) {
1616
name string
1717
cmd *cobra.Command
1818
adminKey bool
19-
ACLs []string
19+
ACLs []search.Acl
2020
wantErr bool
2121
wantErrMessage string
2222
}{
@@ -26,7 +26,7 @@ func Test_CheckACLs(t *testing.T) {
2626
Annotations: map[string]string{},
2727
},
2828
adminKey: false,
29-
ACLs: []string{},
29+
ACLs: []search.Acl{},
3030
wantErr: false,
3131
},
3232
{
@@ -37,7 +37,7 @@ func Test_CheckACLs(t *testing.T) {
3737
},
3838
},
3939
adminKey: false,
40-
ACLs: []string{},
40+
ACLs: []search.Acl{},
4141
wantErr: true,
4242
wantErrMessage: "this command requires an admin API key. Use the `--api-key` flag with a valid admin API key",
4343
},
@@ -49,7 +49,7 @@ func Test_CheckACLs(t *testing.T) {
4949
},
5050
},
5151
adminKey: true,
52-
ACLs: []string{},
52+
ACLs: []search.Acl{},
5353
wantErr: false,
5454
wantErrMessage: "",
5555
},
@@ -61,7 +61,7 @@ func Test_CheckACLs(t *testing.T) {
6161
},
6262
},
6363
adminKey: false,
64-
ACLs: []string{},
64+
ACLs: []search.Acl{},
6565
wantErr: true,
6666
wantErrMessage: `Missing API key ACL(s): search
6767
Edit your profile or use the ` + "`--api-key`" + ` flag to provide an API key with the missing ACLs.
@@ -75,7 +75,7 @@ See https://www.algolia.com/doc/guides/security/api-keys/#rights-and-restriction
7575
},
7676
},
7777
adminKey: false,
78-
ACLs: []string{"search"},
78+
ACLs: []search.Acl{search.ACL_SEARCH},
7979
wantErr: false,
8080
},
8181
}
@@ -86,7 +86,7 @@ See https://www.algolia.com/doc/guides/security/api-keys/#rights-and-restriction
8686
if tt.adminKey {
8787
r.Register(
8888
httpmock.REST("GET", "1/keys"),
89-
httpmock.JSONResponse(search.ListAPIKeysRes{}),
89+
httpmock.JSONResponse(search.ListApiKeysResponse{}),
9090
)
9191
} else {
9292
r.Register(
@@ -98,7 +98,7 @@ See https://www.algolia.com/doc/guides/security/api-keys/#rights-and-restriction
9898
if tt.ACLs != nil && !tt.adminKey {
9999
r.Register(
100100
httpmock.REST("GET", "1/keys/test"),
101-
httpmock.JSONResponse(search.Key{ACL: tt.ACLs}),
101+
httpmock.JSONResponse(search.ApiKey{Acl: tt.ACLs}),
102102
)
103103
}
104104

pkg/cmd/apikeys/create/create.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func NewCreateCmd(f *cmdutil.Factory, runF func(*CreateOptions) error) *cobra.Co
3434
opts := &CreateOptions{
3535
IO: f.IOStreams,
3636
config: f.Config,
37-
SearchClient: f.V4SearchClient,
37+
SearchClient: f.SearchClient,
3838
}
3939
cmd := &cobra.Command{
4040
Use: "create",
@@ -106,15 +106,15 @@ func NewCreateCmd(f *cmdutil.Factory, runF func(*CreateOptions) error) *cobra.Co
106106
if err != nil {
107107
return nil, cobra.ShellCompDirectiveError
108108
}
109-
indicesRes, err := client.ListIndices()
109+
indicesRes, err := client.ListIndices(client.NewApiListIndicesRequest())
110110
if err != nil {
111111
return nil, cobra.ShellCompDirectiveError
112112
}
113113
allowedIndices := make([]string, 0, len(indicesRes.Items))
114114
for _, index := range indicesRes.Items {
115115
allowedIndices = append(
116116
allowedIndices,
117-
fmt.Sprintf("%s\t%s records", index.Name, humanize.Comma(index.Entries)),
117+
fmt.Sprintf("%s\t%s records", index.Name, humanize.Comma(int64(index.Entries))),
118118
)
119119
}
120120
return allowedIndices, cobra.ShellCompDirectiveNoFileComp

pkg/cmd/apikeys/create/create_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import (
1010
"github.com/stretchr/testify/require"
1111

1212
"github.com/algolia/cli/pkg/cmdutil"
13-
"github.com/algolia/cli/pkg/httpmock/v4"
13+
"github.com/algolia/cli/pkg/httpmock"
1414
"github.com/algolia/cli/pkg/iostreams"
15-
"github.com/algolia/cli/test/v4"
15+
"github.com/algolia/cli/test"
1616
)
1717

1818
func TestNewCreateCmd(t *testing.T) {

pkg/cmd/apikeys/delete/delete.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func NewDeleteCmd(f *cmdutil.Factory, runF func(*DeleteOptions) error) *cobra.Co
2929
opts := &DeleteOptions{
3030
IO: f.IOStreams,
3131
config: f.Config,
32-
SearchClient: f.V4SearchClient,
32+
SearchClient: f.SearchClient,
3333
}
3434

3535
var confirm bool

pkg/cmd/apikeys/delete/delete_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import (
1010
"github.com/stretchr/testify/require"
1111

1212
"github.com/algolia/cli/pkg/cmdutil"
13-
"github.com/algolia/cli/pkg/httpmock/v4"
13+
"github.com/algolia/cli/pkg/httpmock"
1414
"github.com/algolia/cli/pkg/iostreams"
15-
"github.com/algolia/cli/test/v4"
15+
"github.com/algolia/cli/test"
1616
)
1717

1818
func TestNewDeleteCmd(t *testing.T) {

pkg/cmd/apikeys/get/get.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func NewGetCmd(f *cmdutil.Factory, runF func(*GetOptions) error) *cobra.Command
3030
opts := &GetOptions{
3131
IO: f.IOStreams,
3232
config: f.Config,
33-
SearchClient: f.V4SearchClient,
33+
SearchClient: f.SearchClient,
3434
PrintFlags: cmdutil.NewPrintFlags().WithDefaultOutput("json"),
3535
}
3636

pkg/cmd/apikeys/get/get_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"github.com/algolia/algoliasearch-client-go/v4/algolia/search"
77
"github.com/stretchr/testify/assert"
88

9-
"github.com/algolia/cli/pkg/httpmock/v4"
10-
"github.com/algolia/cli/test/v4"
9+
"github.com/algolia/cli/pkg/httpmock"
10+
"github.com/algolia/cli/test"
1111
)
1212

1313
func Test_runGetCmd(t *testing.T) {

pkg/cmd/apikeys/list/list.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func NewListCmd(f *cmdutil.Factory, runF func(*ListOptions) error) *cobra.Comman
3030
opts := &ListOptions{
3131
IO: f.IOStreams,
3232
Config: f.Config,
33-
SearchClient: f.V4SearchClient,
33+
SearchClient: f.SearchClient,
3434
PrintFlags: cmdutil.NewPrintFlags(),
3535
}
3636
cmd := &cobra.Command{

pkg/cmd/apikeys/list/list_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"github.com/algolia/algoliasearch-client-go/v4/algolia/search"
77
"github.com/stretchr/testify/assert"
88

9-
"github.com/algolia/cli/pkg/httpmock/v4"
10-
"github.com/algolia/cli/test/v4"
9+
"github.com/algolia/cli/pkg/httpmock"
10+
"github.com/algolia/cli/test"
1111
)
1212

1313
func Test_runListCmd(t *testing.T) {

pkg/cmd/dictionary/entries/browse/browse.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func NewBrowseCmd(f *cmdutil.Factory, runF func(*BrowseOptions) error) *cobra.Co
3434
opts := &BrowseOptions{
3535
IO: f.IOStreams,
3636
Config: f.Config,
37-
SearchClient: f.V4SearchClient,
37+
SearchClient: f.SearchClient,
3838
PrintFlags: cmdutil.NewPrintFlags().WithDefaultOutput("json"),
3939
}
4040

pkg/cmd/dictionary/entries/browse/browse_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"github.com/algolia/algoliasearch-client-go/v4/algolia/search"
88
"github.com/stretchr/testify/assert"
99

10-
"github.com/algolia/cli/pkg/httpmock/v4"
11-
"github.com/algolia/cli/test/v4"
10+
"github.com/algolia/cli/pkg/httpmock"
11+
"github.com/algolia/cli/test"
1212
)
1313

1414
func Test_runBrowseCmd(t *testing.T) {

pkg/cmd/dictionary/entries/clear/clear.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func NewClearCmd(f *cmdutil.Factory, runF func(*ClearOptions) error) *cobra.Comm
3737
opts := &ClearOptions{
3838
IO: f.IOStreams,
3939
Config: f.Config,
40-
SearchClient: f.V4SearchClient,
40+
SearchClient: f.SearchClient,
4141
}
4242
cmd := &cobra.Command{
4343
Use: "clear {<dictionary>... | --all} [--confirm]",

pkg/cmd/dictionary/entries/clear/clear_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import (
1010
"github.com/stretchr/testify/require"
1111

1212
"github.com/algolia/cli/pkg/cmdutil"
13-
"github.com/algolia/cli/pkg/httpmock/v4"
13+
"github.com/algolia/cli/pkg/httpmock"
1414
"github.com/algolia/cli/pkg/iostreams"
15-
"github.com/algolia/cli/test/v4"
15+
"github.com/algolia/cli/test"
1616
)
1717

1818
func TestNewClearCmd(t *testing.T) {

pkg/cmd/dictionary/entries/delete/delete.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func NewDeleteCmd(f *cmdutil.Factory, runF func(*DeleteOptions) error) *cobra.Co
3434
opts := &DeleteOptions{
3535
IO: f.IOStreams,
3636
Config: f.Config,
37-
SearchClient: f.V4SearchClient,
37+
SearchClient: f.SearchClient,
3838
}
3939
cmd := &cobra.Command{
4040
Use: "delete <dictionary> --object-ids <object-ids> [--confirm]",

pkg/cmd/dictionary/entries/delete/delete_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import (
1010
"github.com/stretchr/testify/require"
1111

1212
"github.com/algolia/cli/pkg/cmdutil"
13-
"github.com/algolia/cli/pkg/httpmock/v4"
13+
"github.com/algolia/cli/pkg/httpmock"
1414
"github.com/algolia/cli/pkg/iostreams"
15-
"github.com/algolia/cli/test/v4"
15+
"github.com/algolia/cli/test"
1616
)
1717

1818
func TestNewDeleteCmd(t *testing.T) {

pkg/cmd/dictionary/entries/import/import.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func NewImportCmd(f *cmdutil.Factory, runF func(*ImportOptions) error) *cobra.Co
4242
opts := &ImportOptions{
4343
IO: f.IOStreams,
4444
Config: f.Config,
45-
SearchClient: f.V4SearchClient,
45+
SearchClient: f.SearchClient,
4646
}
4747

4848
cmd := &cobra.Command{

pkg/cmd/dictionary/entries/import/import_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"github.com/stretchr/testify/assert"
1111
"github.com/stretchr/testify/require"
1212

13-
"github.com/algolia/cli/pkg/httpmock/v4"
14-
"github.com/algolia/cli/test/v4"
13+
"github.com/algolia/cli/pkg/httpmock"
14+
"github.com/algolia/cli/test"
1515
)
1616

1717
func Test_runImportCmd(t *testing.T) {

pkg/cmd/dictionary/settings/get/get.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func NewGetCmd(f *cmdutil.Factory, runF func(*GetOptions) error) *cobra.Command
2424
opts := &GetOptions{
2525
IO: f.IOStreams,
2626
Config: f.Config,
27-
SearchClient: f.V4SearchClient,
27+
SearchClient: f.SearchClient,
2828
PrintFlags: cmdutil.NewPrintFlags().WithDefaultOutput("json"),
2929
}
3030
cmd := &cobra.Command{

pkg/cmd/dictionary/settings/set/set.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func NewSetCmd(f *cmdutil.Factory, runF func(*SetOptions) error) *cobra.Command
2828
opts := &SetOptions{
2929
IO: f.IOStreams,
3030
Config: f.Config,
31-
SearchClient: f.V4SearchClient,
31+
SearchClient: f.SearchClient,
3232
}
3333
cmd := &cobra.Command{
3434
Use: "set --disable-standard-entries <languages...> --enable-standard-entries <languages...> [--reset-standard-entries]",

pkg/cmd/factory/default.go

+5-15
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package factory
33
import (
44
"fmt"
55

6-
"github.com/algolia/algoliasearch-client-go/v4/algolia/call"
76
"github.com/algolia/algoliasearch-client-go/v4/algolia/search"
87
"github.com/algolia/algoliasearch-client-go/v4/algolia/transport"
98

@@ -44,22 +43,13 @@ func searchClient(f *cmdutil.Factory, appVersion string) func() (*search.APIClie
4443
defaultClient, _ := search.NewClient(appID, apiKey)
4544
defaultUserAgent := defaultClient.GetConfiguration().UserAgent
4645

47-
var hosts []transport.StatefulHost
48-
for _, host := range f.Config.Profile().GetSearchHosts() {
49-
statefulHost := transport.NewStatefulHost("https", host, call.IsReadWrite)
50-
hosts = append(hosts, statefulHost)
51-
}
52-
46+
// TODO: Doesn't support custom `search_hosts` yet.
47+
// To support it, it's best to transform the GetSearchHosts() function
5348
clientConf := search.SearchConfiguration{
5449
Configuration: transport.Configuration{
55-
AppID: appID,
56-
ApiKey: apiKey,
57-
UserAgent: defaultUserAgent + fmt.Sprintf(
58-
"Algolia CLI (%s)",
59-
appVersion,
60-
),
61-
Hosts: hosts,
62-
ExposeIntermediateNetworkErrors: true,
50+
AppID: appID,
51+
ApiKey: apiKey,
52+
UserAgent: defaultUserAgent + fmt.Sprintf("Algolia CLI (%s)", appVersion),
6353
},
6454
}
6555

0 commit comments

Comments
 (0)