Skip to content

Commit

Permalink
Make GraphQLRequest.Extensions dictionary (#556)
Browse files Browse the repository at this point in the history
  • Loading branch information
sungam3r authored Apr 26, 2023
1 parent aa87838 commit 7e1aa16
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
6 changes: 4 additions & 2 deletions src/GraphQL.Client/GraphQLHttpRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ public GraphQLHttpRequest()
{
}

public GraphQLHttpRequest(string query, object? variables = null, string? operationName = null) : base(query, variables, operationName)
public GraphQLHttpRequest(string query, object? variables = null, string? operationName = null, Dictionary<string, object?>? extensions = null)
: base(query, variables, operationName, extensions)
{
}

public GraphQLHttpRequest(GraphQLRequest other) : base(other)
public GraphQLHttpRequest(GraphQLRequest other)
: base(other)
{
}

Expand Down
6 changes: 3 additions & 3 deletions src/GraphQL.Primitives/GraphQLRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ public object? Variables
/// <summary>
/// Represents the request extensions
/// </summary>
public object? Extensions
public Dictionary<string, object?>? Extensions
{
get => TryGetValue(EXTENSIONS_KEY, out object value) ? value : null;
get => TryGetValue(EXTENSIONS_KEY, out object value) && value is Dictionary<string, object?> d ? d : null;
set => this[EXTENSIONS_KEY] = value;
}

public GraphQLRequest() { }

public GraphQLRequest(string query, object? variables = null, string? operationName = null, object? extensions = null)
public GraphQLRequest(string query, object? variables = null, string? operationName = null, Dictionary<string, object?>? extensions = null)
{
Query = query;
Variables = variables;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ public IEnumerator<object[]> GetEnumerator()
"{\"query\":\"simplequerystring\",\"variables\":null,\"operationName\":null,\"extensions\":null}",
new GraphQLRequest("simple query string")
};
yield return new object[] {
"{\"query\":\"simplequerystring\",\"variables\":null,\"operationName\":null,\"extensions\":{\"a\":\"abc\",\"b\":true,\"c\":{\"d\":42}}}",
new GraphQLRequest("simple query string", extensions: new Dictionary<string, object?> { ["a"] = "abc", ["b"] = true, ["c"] = new Dictionary<string, object> { ["d"] = 42 } })
};
yield return new object[] {
"{\"query\":\"simplequerystring\",\"variables\":{\"camelCaseProperty\":\"camelCase\",\"PascalCaseProperty\":\"PascalCase\"},\"operationName\":null,\"extensions\":null}",
new GraphQLRequest("simple query string", new { camelCaseProperty = "camelCase", PascalCaseProperty = "PascalCase"})
Expand Down

0 comments on commit 7e1aa16

Please sign in to comment.