Skip to content

Commit 7e1aa16

Browse files
authored
Make GraphQLRequest.Extensions dictionary (#556)
1 parent aa87838 commit 7e1aa16

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/GraphQL.Client/GraphQLHttpRequest.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ public GraphQLHttpRequest()
1111
{
1212
}
1313

14-
public GraphQLHttpRequest(string query, object? variables = null, string? operationName = null) : base(query, variables, operationName)
14+
public GraphQLHttpRequest(string query, object? variables = null, string? operationName = null, Dictionary<string, object?>? extensions = null)
15+
: base(query, variables, operationName, extensions)
1516
{
1617
}
1718

18-
public GraphQLHttpRequest(GraphQLRequest other) : base(other)
19+
public GraphQLHttpRequest(GraphQLRequest other)
20+
: base(other)
1921
{
2022
}
2123

src/GraphQL.Primitives/GraphQLRequest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ public object? Variables
4040
/// <summary>
4141
/// Represents the request extensions
4242
/// </summary>
43-
public object? Extensions
43+
public Dictionary<string, object?>? Extensions
4444
{
45-
get => TryGetValue(EXTENSIONS_KEY, out object value) ? value : null;
45+
get => TryGetValue(EXTENSIONS_KEY, out object value) && value is Dictionary<string, object?> d ? d : null;
4646
set => this[EXTENSIONS_KEY] = value;
4747
}
4848

4949
public GraphQLRequest() { }
5050

51-
public GraphQLRequest(string query, object? variables = null, string? operationName = null, object? extensions = null)
51+
public GraphQLRequest(string query, object? variables = null, string? operationName = null, Dictionary<string, object?>? extensions = null)
5252
{
5353
Query = query;
5454
Variables = variables;

tests/GraphQL.Client.Serializer.Tests/TestData/SerializeToStringTestData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ public IEnumerator<object[]> GetEnumerator()
1010
"{\"query\":\"simplequerystring\",\"variables\":null,\"operationName\":null,\"extensions\":null}",
1111
new GraphQLRequest("simple query string")
1212
};
13+
yield return new object[] {
14+
"{\"query\":\"simplequerystring\",\"variables\":null,\"operationName\":null,\"extensions\":{\"a\":\"abc\",\"b\":true,\"c\":{\"d\":42}}}",
15+
new GraphQLRequest("simple query string", extensions: new Dictionary<string, object?> { ["a"] = "abc", ["b"] = true, ["c"] = new Dictionary<string, object> { ["d"] = 42 } })
16+
};
1317
yield return new object[] {
1418
"{\"query\":\"simplequerystring\",\"variables\":{\"camelCaseProperty\":\"camelCase\",\"PascalCaseProperty\":\"PascalCase\"},\"operationName\":null,\"extensions\":null}",
1519
new GraphQLRequest("simple query string", new { camelCaseProperty = "camelCase", PascalCaseProperty = "PascalCase"})

0 commit comments

Comments
 (0)