Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions Src/Notion.Client/Api/Databases/DatabasesClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using static Notion.Client.ApiEndpoints;

Expand All @@ -23,8 +25,17 @@ public async Task<PaginatedList<Page>> QueryAsync(
DatabasesQueryParameters databasesQueryParameters, CancellationToken cancellationToken = default)
{
var body = (IDatabaseQueryBodyParameters)databasesQueryParameters;
var queryParameters = (IDatabaseQueryQueryParameters)databasesQueryParameters;

return await _client.PostAsync<PaginatedList<Page>>(DatabasesApiUrls.Query(databaseId), body, cancellationToken: cancellationToken);
var queryParams = queryParameters.FilterProperties?
.Select(x => new KeyValuePair<string, string>("filter_properties", x));

return await _client.PostAsync<PaginatedList<Page>>(
DatabasesApiUrls.Query(databaseId),
body,
queryParams,
cancellationToken: cancellationToken
);
}

public async Task<Database> CreateAsync(DatabasesCreateParameters databasesCreateParameters, CancellationToken cancellationToken = default)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Notion.Client
{
public class DatabasesQueryParameters : IDatabaseQueryBodyParameters
public class DatabasesQueryParameters : IDatabaseQueryBodyParameters, IDatabaseQueryQueryParameters
{
public Filter Filter { get; set; }

Expand All @@ -11,5 +11,7 @@ public class DatabasesQueryParameters : IDatabaseQueryBodyParameters
public string StartCursor { get; set; }

public int? PageSize { get; set; }

public List<string> FilterProperties { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Notion.Client
{
public interface IDatabaseQueryQueryParameters
{
[JsonProperty("filter_properties")]
List<string> FilterProperties { get; set; }
}
}
2 changes: 1 addition & 1 deletion Src/Notion.Client/RestClient/IRestClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Task<T> GetAsync<T>(
Task<T> PostAsync<T>(
string uri,
object body,
IDictionary<string, string> queryParams = null,
IEnumerable<KeyValuePair<string, string>> queryParams = null,
IDictionary<string, string> headers = null,
JsonSerializerSettings serializerSettings = null,
CancellationToken cancellationToken = default);
Expand Down
6 changes: 3 additions & 3 deletions Src/Notion.Client/RestClient/RestClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public async Task<T> GetAsync<T>(
public async Task<T> PostAsync<T>(
string uri,
object body,
IDictionary<string, string> queryParams = null,
IEnumerable<KeyValuePair<string, string>> queryParams = null,
IDictionary<string, string> headers = null,
JsonSerializerSettings serializerSettings = null,
CancellationToken cancellationToken = default)
Expand Down Expand Up @@ -125,7 +125,7 @@ private static async Task<Exception> BuildException(HttpResponseMessage response
private async Task<HttpResponseMessage> SendAsync(
string requestUri,
HttpMethod httpMethod,
IDictionary<string, string> queryParams = null,
IEnumerable<KeyValuePair<string, string>> queryParams = null,
IDictionary<string, string> headers = null,
Action<HttpRequestMessage> attachContent = null,
CancellationToken cancellationToken = default)
Expand Down Expand Up @@ -176,7 +176,7 @@ private void EnsureHttpClient()
_httpClient.BaseAddress = new Uri(_options.BaseUrl);
}

private static string AddQueryString(string uri, IDictionary<string, string> queryParams)
private static string AddQueryString(string uri, IEnumerable<KeyValuePair<string, string>> queryParams)
{
return queryParams == null ? uri : QueryHelpers.AddQueryString(uri, queryParams);
}
Expand Down
2 changes: 1 addition & 1 deletion Src/Notion.Client/http/QueryHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static string AddQueryString(string uri, IDictionary<string, string> quer
return AddQueryString(uri, (IEnumerable<KeyValuePair<string, string>>)queryParams);
}

private static string AddQueryString(
public static string AddQueryString(
string uri,
IEnumerable<KeyValuePair<string, string>> queryParams)
{
Expand Down