Skip to content

Commit 0b7a2c5

Browse files
committed
Merge pull request #1875 from elastic/fix/1867
Fix #1867 objects can now be serialized in register percolater metadata
2 parents 02903b6 + d46fa07 commit 0b7a2c5

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/Nest/Search/Percolator/RegisterPercolator/RegisterPercolatorJsonConverter.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using Newtonsoft.Json;
55
using Newtonsoft.Json.Linq;
6+
using System.Reflection;
67

78
namespace Nest
89
{
@@ -49,7 +50,14 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
4950
foreach(var kv in request.Metadata)
5051
{
5152
writer.WritePropertyName(kv.Key);
52-
writer.WriteValue(kv.Value);
53+
#if DOTNETCORE
54+
if (kv.Value.GetType().GetTypeInfo().IsValueType)
55+
#else
56+
if (kv.Value.GetType().IsValueType)
57+
#endif
58+
writer.WriteValue(kv.Value);
59+
else
60+
serializer.Serialize(writer, kv.Value);
5361
}
5462
}
5563

src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorApiTests.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ protected override LazyResponses ClientUsage() => Calls(
4747
match = new { name = new { query = "nest" } }
4848
},
4949
language = "c#",
50-
commits = 5000
50+
commits = 5000,
51+
project = Project.Instance
5152
};
5253

5354
protected override void ExpectResponse(IRegisterPercolatorResponse response)
@@ -70,6 +71,7 @@ protected override void ExpectResponse(IRegisterPercolatorResponse response)
7071
.Metadata(md => md
7172
.Add("language", "c#")
7273
.Add("commits", 5000)
74+
.Add("project", Project.Instance)
7375
);
7476

7577
protected override RegisterPercolatorRequest Initializer => new RegisterPercolatorRequest(this.CallIsolatedValue + "-index", this.CallIsolatedValue)
@@ -82,7 +84,8 @@ protected override void ExpectResponse(IRegisterPercolatorResponse response)
8284
Metadata = new Dictionary<string, object>
8385
{
8486
{ "language", "c#" },
85-
{ "commits", 5000 }
87+
{ "commits", 5000 },
88+
{ "project", Project.Instance }
8689
}
8790
};
8891
}

0 commit comments

Comments
 (0)