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",
|
name: "with query, successful response",
|
||||||
query: ¬ion.DatabaseQuery{
|
query: ¬ion.DatabaseQuery{
|
||||||
Filter: notion.DatabaseQueryFilter{
|
Filter: ¬ion.DatabaseQueryFilter{
|
||||||
Property: "Name",
|
Property: "Name",
|
||||||
Text: ¬ion.TextDatabaseQueryFilter{
|
Text: ¬ion.TextDatabaseQueryFilter{
|
||||||
Contains: "foobar",
|
Contains: "foobar",
|
||||||
@ -775,7 +775,7 @@ func TestQueryDatabase(t *testing.T) {
|
|||||||
expError: nil,
|
expError: nil,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "without query, successful response",
|
name: "without query, doesn't send POST body",
|
||||||
query: nil,
|
query: nil,
|
||||||
respBody: func(_ *http.Request) io.Reader {
|
respBody: func(_ *http.Request) io.Reader {
|
||||||
return strings.NewReader(
|
return strings.NewReader(
|
||||||
@ -796,6 +796,28 @@ func TestQueryDatabase(t *testing.T) {
|
|||||||
},
|
},
|
||||||
expError: nil,
|
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",
|
name: "error response",
|
||||||
respBody: func(_ *http.Request) io.Reader {
|
respBody: func(_ *http.Request) io.Reader {
|
||||||
|
@ -91,10 +91,10 @@ type DatabaseProperty struct {
|
|||||||
|
|
||||||
// DatabaseQuery is used for quering a database.
|
// DatabaseQuery is used for quering a database.
|
||||||
type DatabaseQuery struct {
|
type DatabaseQuery struct {
|
||||||
Filter DatabaseQueryFilter `json:"filter,omitempty"`
|
Filter *DatabaseQueryFilter `json:"filter,omitempty"`
|
||||||
Sorts []DatabaseQuerySort `json:"sorts,omitempty"`
|
Sorts []DatabaseQuerySort `json:"sorts,omitempty"`
|
||||||
StartCursor string `json:"start_cursor,omitempty"`
|
StartCursor string `json:"start_cursor,omitempty"`
|
||||||
PageSize int `json:"page_size,omitempty"`
|
PageSize int `json:"page_size,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// DatabaseQueryResponse contains the results and pagination data from a query request.
|
// DatabaseQueryResponse contains the results and pagination data from a query request.
|
||||||
|
Reference in New Issue
Block a user