mirror of
https://github.com/dstotijn/go-notion.git
synced 2025-06-15 00:05:04 +02:00
Enable empty DatabaseQueryFilter (#15)
* Add test for "DatabaseQuery" * Fix DatabaseQuery Filter field type * Assert database query JSON omit logic in `Client` tests Co-authored-by: Alexandre Falardeau <asfal@AsFal-Laptop.local> Co-authored-by: David Stotijn <dstotijn@gmail.com>
This commit is contained in:
committed by
GitHub
parent
c675641a4c
commit
969ba033ff
@ -406,7 +406,7 @@ func TestQueryDatabase(t *testing.T) {
|
||||
{
|
||||
name: "with query, successful response",
|
||||
query: ¬ion.DatabaseQuery{
|
||||
Filter: notion.DatabaseQueryFilter{
|
||||
Filter: ¬ion.DatabaseQueryFilter{
|
||||
Property: "Name",
|
||||
Text: ¬ion.TextDatabaseQueryFilter{
|
||||
Contains: "foobar",
|
||||
@ -775,7 +775,7 @@ func TestQueryDatabase(t *testing.T) {
|
||||
expError: nil,
|
||||
},
|
||||
{
|
||||
name: "without query, successful response",
|
||||
name: "without query, doesn't send POST body",
|
||||
query: nil,
|
||||
respBody: func(_ *http.Request) io.Reader {
|
||||
return strings.NewReader(
|
||||
@ -796,6 +796,28 @@ func TestQueryDatabase(t *testing.T) {
|
||||
},
|
||||
expError: nil,
|
||||
},
|
||||
{
|
||||
name: "with non nil query, but without fields, omits all fields from POST body",
|
||||
query: ¬ion.DatabaseQuery{},
|
||||
respBody: func(_ *http.Request) io.Reader {
|
||||
return strings.NewReader(
|
||||
`{
|
||||
"object": "list",
|
||||
"results": [],
|
||||
"next_cursor": null,
|
||||
"has_more": false
|
||||
}`,
|
||||
)
|
||||
},
|
||||
respStatusCode: http.StatusOK,
|
||||
expPostBody: map[string]interface{}{},
|
||||
expResponse: notion.DatabaseQueryResponse{
|
||||
Results: []notion.Page{},
|
||||
HasMore: false,
|
||||
NextCursor: nil,
|
||||
},
|
||||
expError: nil,
|
||||
},
|
||||
{
|
||||
name: "error response",
|
||||
respBody: func(_ *http.Request) io.Reader {
|
||||
|
@ -91,10 +91,10 @@ type DatabaseProperty struct {
|
||||
|
||||
// DatabaseQuery is used for quering a database.
|
||||
type DatabaseQuery struct {
|
||||
Filter DatabaseQueryFilter `json:"filter,omitempty"`
|
||||
Sorts []DatabaseQuerySort `json:"sorts,omitempty"`
|
||||
StartCursor string `json:"start_cursor,omitempty"`
|
||||
PageSize int `json:"page_size,omitempty"`
|
||||
Filter *DatabaseQueryFilter `json:"filter,omitempty"`
|
||||
Sorts []DatabaseQuerySort `json:"sorts,omitempty"`
|
||||
StartCursor string `json:"start_cursor,omitempty"`
|
||||
PageSize int `json:"page_size,omitempty"`
|
||||
}
|
||||
|
||||
// DatabaseQueryResponse contains the results and pagination data from a query request.
|
||||
|
Reference in New Issue
Block a user