Skip to content

Commit f85a444

Browse files
committed
feat: support query list
1 parent abd0257 commit f85a444

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

go/client/sock/client.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,28 @@ type GetSingleRequest struct {
2323
OrderDesc bool `msgpack:"order_desc,omitempty"`
2424
}
2525

26+
type QuerySingleRequest struct {
27+
Name string `msgpack:"name"`
28+
Query map[string]any `msgpack:"query"`
29+
SortKey string `msgpack:"sort_key,omitempty"`
30+
OrderDesc bool `msgpack:"order_desc,omitempty"`
31+
Intersect bool `msgpack:"intersect"`
32+
}
33+
2634
type GetListRequest struct {
2735
SortKey string `msgpack:"sort_key,omitempty"`
2836
OrderDesc bool `msgpack:"order_desc,omitempty"`
2937
Offset uint `msgpack:"offset,omitempty"`
3038
Limit uint `msgpack:"limit,omitempty"`
3139
}
3240

33-
type QuerySingleRequest struct {
34-
Name string `msgpack:"name"`
41+
type QueryListRequest struct {
3542
Query map[string]any `msgpack:"query"`
3643
SortKey string `msgpack:"sort_key,omitempty"`
3744
OrderDesc bool `msgpack:"order_desc,omitempty"`
38-
Intersect bool `msgpack:"intersect"`
45+
Offset uint `msgpack:"offset,omitempty"`
46+
Limit uint `msgpack:"limit,omitempty"`
47+
Intersect bool `msgpack:"intersect,omitempty"`
3948
}
4049

4150
type singleResponse struct {
@@ -153,3 +162,7 @@ func (c *Client) QuerySingle(req QuerySingleRequest) (*singleResponse, error) {
153162
func (c *Client) GetList(req GetListRequest) ([]listResponse, error) {
154163
return c.runListRequest(req, "ListGet")
155164
}
165+
166+
func (c *Client) QueryList(req QueryListRequest) ([]listResponse, error) {
167+
return c.runListRequest(req, "ListQuery")
168+
}

go/client/sock/test/client_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,17 @@ func TestGetList(t *testing.T) {
7373
t.Fatalf("Unexpected response length: %d", respLen)
7474
}
7575
}
76+
77+
func TestQueryList(t *testing.T) {
78+
client := sock.NewClient("/tmp/custard")
79+
resp, err := client.QueryList(sock.QueryListRequest{
80+
Query: map[string]any{"tags": []string{"code"}},
81+
})
82+
if err != nil {
83+
t.Fatalf("Request failed: %s", err)
84+
}
85+
respLen := len(resp)
86+
if respLen != 5 {
87+
t.Fatalf("Unexpected response length: %d", respLen)
88+
}
89+
}

0 commit comments

Comments
 (0)