Skip to content

Commit b4a473b

Browse files
added JsonSerializerSettings pass through
1 parent d0cece9 commit b4a473b

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

Runtime/SimpleGraphQL/GraphQLClient.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public GraphQLClient(GraphQLConfig config)
5151
/// <returns></returns>
5252
public async Task<string> Send(
5353
Request request,
54+
JsonSerializerSettings serializerSettings = null,
5455
Dictionary<string, string> headers = null,
5556
string authToken = null,
5657
string authScheme = null
@@ -74,6 +75,7 @@ public async Task<string> Send(
7475
string postQueryAsync = await HttpUtils.PostRequest(
7576
Endpoint,
7677
request,
78+
serializerSettings,
7779
headers,
7880
authToken,
7981
authScheme
@@ -84,23 +86,25 @@ public async Task<string> Send(
8486

8587
public async Task<Response<TResponse>> Send<TResponse>(
8688
Request request,
89+
JsonSerializerSettings serializerSettings = null,
8790
Dictionary<string, string> headers = null,
8891
string authToken = null,
8992
string authScheme = null
9093
)
9194
{
92-
string json = await Send(request, headers, authToken, authScheme);
95+
string json = await Send(request, serializerSettings, headers, authToken, authScheme);
9396
return JsonConvert.DeserializeObject<Response<TResponse>>(json);
9497
}
9598

9699
public async Task<Response<TResponse>> Send<TResponse>(
97100
Func<TResponse> responseTypeResolver,
98101
Request request,
102+
JsonSerializerSettings serializerSettings = null,
99103
Dictionary<string, string> headers = null,
100104
string authToken = null,
101105
string authScheme = null)
102106
{
103-
return await Send<TResponse>(request, headers, authToken, authScheme);
107+
return await Send<TResponse>(request, serializerSettings, headers, authToken, authScheme);
104108
}
105109

106110
/// <summary>

Runtime/SimpleGraphQL/HttpUtils.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,15 @@ public static void Dispose()
5252
public static async Task<string> PostRequest(
5353
string url,
5454
Request request,
55+
JsonSerializerSettings serializerSettings = null,
5556
Dictionary<string, string> headers = null,
5657
string authToken = null,
5758
string authScheme = null
5859
)
5960
{
6061
var uri = new Uri(url);
6162

62-
byte[] payload = request.ToBytes();
63+
byte[] payload = request.ToBytes(serializerSettings);
6364

6465
using (var webRequest = new UnityWebRequest(uri, "POST")
6566
{

Runtime/SimpleGraphQL/Request.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,23 @@ public override string ToString()
2626
[PublicAPI]
2727
public static class RequestExtensions
2828
{
29-
public static byte[] ToBytes(this Request request)
29+
private static JsonSerializerSettings defaultSerializerSettings = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
30+
public static byte[] ToBytes(this Request request, JsonSerializerSettings serializerSettings = null)
3031
{
31-
return Encoding.UTF8.GetBytes(request.ToJson());
32+
return Encoding.UTF8.GetBytes(request.ToJson(false, serializerSettings));
3233
}
3334

34-
public static string ToJson(this Request request,
35-
bool prettyPrint = false)
35+
public static string ToJson(this Request request, bool prettyPrint = false, JsonSerializerSettings serializerSettings = null)
3636
{
37+
if (serializerSettings == null)
38+
{
39+
serializerSettings = defaultSerializerSettings;
40+
}
41+
3742
return JsonConvert.SerializeObject
3843
( request,
3944
prettyPrint ? Formatting.Indented : Formatting.None,
40-
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore}
45+
serializerSettings
4146
);
4247
}
4348
}

0 commit comments

Comments
 (0)