Skip to content

Commit

Permalink
feat(go): wait task and api key operation helpers (#2117)
Browse files Browse the repository at this point in the history
  • Loading branch information
Fluf22 authored Oct 17, 2023
1 parent 4060bb3 commit 2062fa8
Show file tree
Hide file tree
Showing 6 changed files with 418 additions and 3 deletions.
19 changes: 19 additions & 0 deletions clients/algoliasearch-client-go/algolia/internal/errs/wait_err.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package errs

type WaitError struct{}

func (e *WaitError) Error() string {
return "wait error"
}

type WaitKeyUpdateError struct{}

func (e *WaitKeyUpdateError) Error() string {
return "`apiKey` is required when waiting for an `update` operation."
}

type WaitKeyOperationError struct{}

func (e *WaitKeyOperationError) Error() string {
return "`operation` must be one of `add`, `update` or `delete`."
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public String getName() {
public void processOpts() {
String client = (String) additionalProperties.get("client");
additionalProperties.put("enumClassPrefix", true);
additionalProperties.put("isSearchClient", client.equals("search"));

String outputFolder = "algolia" + File.separator + client;
setOutputDir(getOutputDir() + File.separator + outputFolder);
Expand Down
2 changes: 1 addition & 1 deletion playground/go/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module playground

go 1.19
go 1.21

replace github.com/algolia/algoliasearch-client-go/v4 v4.0.0 => ../../clients/algoliasearch-client-go

Expand Down
84 changes: 82 additions & 2 deletions playground/go/search.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,93 @@ func testSearch(appID, apiKey string) int {
searchClient := search.NewClient(appID, apiKey)

searchParams := search.SearchParamsStringAsSearchParams(search.NewSearchParamsString(search.WithSearchParamsStringParams("query=jeans&hitsPerPage=2")))
searchResponse, err := searchClient.SearchSingleIndex(searchClient.NewApiSearchSingleIndexRequest(indexName).WithSearchParams(&searchParams))
_, err := searchClient.SearchSingleIndex(searchClient.NewApiSearchSingleIndexRequest(indexName).WithSearchParams(&searchParams))
if err != nil {
fmt.Printf("request error with SearchSingleIndex: %v\n", err)
return 1
}

printResponse(searchResponse)
apiKeyStruct := search.NewApiKey([]search.Acl{"search"})

addApiKeyResponse, err := searchClient.AddApiKey(searchClient.NewApiAddApiKeyRequest(apiKeyStruct))
if err != nil {
panic(err)
}

taskResponse, err := searchClient.WaitForApiKey(
addApiKeyResponse.Key,
apiKeyStruct,
"add",
nil,
nil,
nil,
)
if err != nil {
panic(err)
}

printResponse(taskResponse)

apiKeyStruct.SetAcl([]search.Acl{"search", "addObject"})

_, err = searchClient.UpdateApiKey(searchClient.NewApiUpdateApiKeyRequest(addApiKeyResponse.Key, apiKeyStruct))
if err != nil {
panic(err)
}

taskResponse, err = searchClient.WaitForApiKey(
addApiKeyResponse.Key,
apiKeyStruct,
"update",
nil,
nil,
nil,
)
if err != nil {
panic(err)
}

printResponse(taskResponse)

apiKeyStruct.SetAcl([]search.Acl{"search", "addObject"})

_, err = searchClient.UpdateApiKey(searchClient.NewApiUpdateApiKeyRequest(addApiKeyResponse.Key, apiKeyStruct))
if err != nil {
panic(err)
}

taskResponse, err = searchClient.WaitForApiKey(
addApiKeyResponse.Key,
apiKeyStruct,
"update",
nil,
nil,
nil,
)
if err != nil {
panic(err)
}

printResponse(taskResponse)

_, err = searchClient.DeleteApiKey(searchClient.NewApiDeleteApiKeyRequest(addApiKeyResponse.Key))
if err != nil {
panic(err)
}

taskResponse, err = searchClient.WaitForApiKey(
addApiKeyResponse.Key,
apiKeyStruct,
"delete",
nil,
nil,
nil,
)
if err != nil {
panic(err)
}

printResponse(taskResponse)

return 0
}
Loading

0 comments on commit 2062fa8

Please sign in to comment.