Skip to content

Commit d39e72b

Browse files
authored
[searcher] Merge Search and SearchVersion (#1117)
## Summary 1. Merge `Search` and `SearchVersion` into `Search` (if version is not provided, do not use `v=<version>` in search 2. Remove unused `Exists` function ## How was it tested? devbox search python
1 parent 07c437e commit d39e72b

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

internal/searcher/client.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,40 @@ var cachedClient *client
3232
func Client() *client {
3333
if cachedClient == nil {
3434
endpoint, _ := url.JoinPath(searchHost(), "search")
35+
// TODO: how to handle error
3536
cachedClient = &client{
3637
endpoint: endpoint,
3738
}
3839
}
3940
return cachedClient
4041
}
4142

42-
func (c *client) Search(query string) (*SearchResult, error) {
43-
return execSearch(c.endpoint + "?q=" + url.QueryEscape(query))
43+
func (c *client) Search(query string, options ...func() string) (*SearchResult, error) {
44+
if query == "" {
45+
return nil, fmt.Errorf("query should not be empty")
46+
}
47+
48+
searchURL := c.endpoint + "?q=" + url.QueryEscape(query)
49+
50+
for _, op := range options {
51+
searchURL += op()
52+
}
53+
54+
return execSearch(searchURL)
4455
}
4556

46-
func (c *client) SearchVersion(query, version string) (*SearchResult, error) {
47-
return execSearch(
48-
c.endpoint +
49-
"?q=" + url.QueryEscape(query) +
50-
"&v=" + url.QueryEscape(version),
51-
)
57+
func WithVersion(version string) func() string {
58+
return func() string {
59+
return "&v=" + url.QueryEscape(version)
60+
}
5261
}
5362

5463
func (c *client) Resolve(pkg string) (*lock.Package, error) {
5564
name, version, _ := devpkg.ParseVersionedPackage(pkg)
5665
if version == "" {
5766
return nil, usererr.New("No version specified for %q.", name)
5867
}
59-
result, err := c.SearchVersion(name, version)
68+
result, err := c.Search(name, WithVersion(version))
6069
if err != nil {
6170
return nil, err
6271
}

internal/searcher/searcher.go

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func SearchAndPrint(w io.Writer, query string) error {
1717
c := Client()
1818
result, err := c.Search(query)
1919
if err != nil {
20-
return redact.Errorf("error getting search results: %v", redact.Safe(err))
20+
return redact.Errorf("failed to get search results: %v", redact.Safe(err))
2121
}
2222
if len(result.Results) == 0 {
2323
fmt.Fprintf(w, "No results found for %q\n", query)
@@ -39,12 +39,3 @@ func SearchAndPrint(w io.Writer, query string) error {
3939
}
4040
return nil
4141
}
42-
43-
func Exists(name, version string) (bool, error) {
44-
c := Client()
45-
result, err := c.SearchVersion(name, version)
46-
if err != nil {
47-
return false, err
48-
}
49-
return len(result.Results) > 0, nil
50-
}

0 commit comments

Comments
 (0)