Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limit redefinition in DocumentsQuery #407

Closed
wants to merge 17 commits into from
Closed
6 changes: 5 additions & 1 deletion index_documents.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ import (
"strings"
)

// NoLimit should be used to set Limit field value
// on DocumentsQuery struct to return all documents.
var NoLimit int64 = math.MinInt64
Azanul marked this conversation as resolved.
Show resolved Hide resolved

func transformStringVariadicToMap(primaryKey ...string) (options map[string]string) {
if primaryKey != nil {
return map[string]string{
Expand Down Expand Up @@ -186,7 +190,7 @@ func (i Index) GetDocuments(request *DocumentsQuery, resp *DocumentsResult) erro
}
if request != nil && request.Filter == nil {
req.withQueryParams = map[string]string{}
if request.Limit != 0 {
if request.Limit != NoLimit {
req.withQueryParams["limit"] = strconv.FormatInt(request.Limit, 10)
}
if request.Offset != 0 {
Expand Down
22 changes: 11 additions & 11 deletions index_documents_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,7 @@ func TestIndex_AddDocumentsCsv(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -756,7 +756,7 @@ func TestIndex_AddDocumentsCsvWithOptions(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -854,7 +854,7 @@ func TestIndex_AddDocumentsCsvInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -959,7 +959,7 @@ func TestIndex_AddDocumentsNdjson(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -1057,7 +1057,7 @@ func TestIndex_AddDocumentsNdjsonInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -1734,7 +1734,7 @@ func TestIndex_GetDocuments(t *testing.T) {

err := i.GetDocuments(tt.args.request, tt.args.resp)
require.NoError(t, err)
if tt.args.request != nil && tt.args.request.Limit != 0 {
if tt.args.request != nil && tt.args.request.Limit != NoLimit {
require.Equal(t, tt.args.request.Limit, int64(len(tt.args.resp.Results)))
}
require.Equal(t, tt.result, int64(len(tt.args.resp.Results)))
Expand Down Expand Up @@ -2192,7 +2192,7 @@ func TestIndex_UpdateDocumentsCsv(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2310,7 +2310,7 @@ func TestIndex_UpdateDocumentsCsvWithOptions(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2408,7 +2408,7 @@ func TestIndex_UpdateDocumentsCsvInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2489,7 +2489,7 @@ func TestIndex_UpdateDocumentsNdjson(t *testing.T) {
testWaitForTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down Expand Up @@ -2587,7 +2587,7 @@ func TestIndex_UpdateDocumentsNdjsonInBatches(t *testing.T) {
testWaitForBatchTask(t, i, gotResp)

var documents DocumentsResult
err = i.GetDocuments(&DocumentsQuery{}, &documents)
err = i.GetDocuments(&DocumentsQuery{Limit: NoLimit}, &documents)
require.NoError(t, err)
require.Equal(t, wantDocs, documents.Results)
})
Expand Down
4 changes: 4 additions & 0 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,10 @@ type DocumentQuery struct {
type DocumentsQuery struct {
Offset int64 `json:"offset,omitempty"`
Limit int64 `json:"limit,omitempty"`
// Limit sets the numbers of returned documents from the
// search queries. The limit can be zero for explicitly
// return nothing. For retrieving all
// returned documents, use NoLimit.
Fields []string `json:"fields,omitempty"`
Filter interface{} `json:"filter,omitempty"`
}
Expand Down
Loading