Skip to content

Commit 54e4bd2

Browse files
committed
Full serialization tests for put pipeline and some processor fixes
1 parent 3d61c0a commit 54e4bd2

19 files changed

+374
-32
lines changed

Diff for: src/Nest/Ingest/ProcessorJsonConverter.cs

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace Nest
9+
{
10+
internal class ProcessorJsonConverter<TReadAs> : ReserializeJsonConverter<TReadAs, IProcessor>
11+
where TReadAs : class, IProcessor, new()
12+
{
13+
protected override void SerializeJson(JsonWriter writer, object value, IProcessor castValue, JsonSerializer serializer)
14+
{
15+
var name = castValue.Name;
16+
if (name == null) return;
17+
writer.WriteStartObject();
18+
{
19+
writer.WritePropertyName(name);
20+
{
21+
this.Reserialize(writer, value, serializer);
22+
}
23+
}
24+
writer.WriteEndObject();
25+
}
26+
}
27+
}

Diff for: src/Nest/Ingest/Processors/AppendProcessor.cs

+9-8
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,41 @@
88
namespace Nest
99
{
1010
[JsonObject(MemberSerialization.OptIn)]
11+
[JsonConverter(typeof(ProcessorJsonConverter<AppendProcessor>))]
1112
public interface IAppendProcessor : IProcessor
1213
{
1314
[JsonProperty("field")]
1415
Field Field { get; set; }
1516

16-
[JsonProperty("values")]
17-
IEnumerable<object> Values { get; set; }
17+
[JsonProperty("value")]
18+
IEnumerable<object> Value { get; set; }
1819
}
1920

2021
public class AppendProcessor : ProcessorBase, IAppendProcessor
2122
{
2223
protected override string Name => "append";
2324
public Field Field { get; set; }
24-
public IEnumerable<object> Values { get; set; }
25+
public IEnumerable<object> Value { get; set; }
2526
}
2627

2728
public class AppendProcessorDescriptor<T> : ProcessorDescriptorBase<AppendProcessorDescriptor<T>, IAppendProcessor>, IAppendProcessor
2829
where T : class
2930
{
3031
protected override string Name => "append";
3132
Field IAppendProcessor.Field { get; set; }
32-
IEnumerable<object> IAppendProcessor.Values { get; set; }
33+
IEnumerable<object> IAppendProcessor.Value { get; set; }
3334

3435
public AppendProcessorDescriptor<T> Field(Field field) => Assign(a => a.Field = field);
3536

3637
public AppendProcessorDescriptor<T> Field(Expression<Func<T, object>> objectPath) =>
3738
Assign(a => a.Field = objectPath);
3839

39-
public AppendProcessorDescriptor<T> Values<TValue>(IEnumerable<TValue> values) => Assign(a => a.Values = values?.Cast<object>());
40+
public AppendProcessorDescriptor<T> Value<TValue>(IEnumerable<TValue> values) => Assign(a => a.Value = values?.Cast<object>());
4041

41-
public AppendProcessorDescriptor<T> Values<TValue>(params TValue[] values) => Assign(a => {
42+
public AppendProcessorDescriptor<T> Value<TValue>(params TValue[] values) => Assign(a => {
4243
if(values?.Length == 1 && typeof(IEnumerable).IsAssignableFrom(typeof(TValue)) && typeof(TValue) != typeof(string))
43-
a.Values = (values.First() as IEnumerable)?.Cast<object>();
44-
else a.Values = values?.Cast<object>();
44+
a.Value = (values.First() as IEnumerable)?.Cast<object>();
45+
else a.Value = values?.Cast<object>();
4546
});
4647
}
4748

Diff for: src/Nest/Ingest/Processors/ConvertProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
namespace Nest
1111
{
1212
[JsonObject(MemberSerialization.OptIn)]
13+
[JsonConverter(typeof(ProcessorJsonConverter<ConvertProcessor>))]
1314
public interface IConvertProcessor : IProcessor
1415
{
1516
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/DateProcessor.cs

+12-13
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<DateProcessor>))]
1213
public interface IDateProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]
@@ -17,8 +18,8 @@ public interface IDateProcessor : IProcessor
1718
[JsonProperty("target_field")]
1819
Field TargetField { get; set; }
1920

20-
[JsonProperty("match_formats")]
21-
string MatchFormats { get; set; }
21+
[JsonProperty("formats")]
22+
IEnumerable<string> Formats { get; set; }
2223

2324
[JsonProperty("timezone")]
2425
string Timezone { get; set; }
@@ -33,13 +34,13 @@ public class DateProcessor : ProcessorBase, IDateProcessor
3334

3435
public Field Field { get; set; }
3536

36-
public string Locale { get; set; }
37-
38-
public string MatchFormats { get; set; }
39-
4037
public Field TargetField { get; set; }
4138

39+
public IEnumerable<string> Formats { get; set; }
40+
4241
public string Timezone { get; set; }
42+
43+
public string Locale { get; set; }
4344
}
4445

4546
public class DateProcessorDescriptor<T>
@@ -49,14 +50,10 @@ public class DateProcessorDescriptor<T>
4950
protected override string Name => "date";
5051

5152
Field IDateProcessor.Field { get; set; }
52-
53-
string IDateProcessor.Locale { get; set; }
54-
55-
string IDateProcessor.MatchFormats { get; set; }
56-
5753
Field IDateProcessor.TargetField { get; set; }
58-
54+
IEnumerable<string> IDateProcessor.Formats { get; set; }
5955
string IDateProcessor.Timezone { get; set; }
56+
string IDateProcessor.Locale { get; set; }
6057

6158
public DateProcessorDescriptor<T> Field(Field field) => Assign(a => a.Field = field);
6259

@@ -68,7 +65,9 @@ public DateProcessorDescriptor<T> Field(Expression<Func<T, object>> objectPath)
6865
public DateProcessorDescriptor<T> TargetField(Expression<Func<T, object>> objectPath) =>
6966
Assign(a => a.TargetField = objectPath);
7067

71-
public DateProcessorDescriptor<T> MatchFormats(string matchFormats) => Assign(a => a.MatchFormats = matchFormats);
68+
public DateProcessorDescriptor<T> Formats(IEnumerable<string> matchFormats) => Assign(a => a.Formats = matchFormats);
69+
70+
public DateProcessorDescriptor<T> Formats(params string[] matchFormats) => Assign(a => a.Formats = matchFormats);
7271

7372
public DateProcessorDescriptor<T> Timezone(string timezone) => Assign(a => a.Timezone = timezone);
7473

Diff for: src/Nest/Ingest/Processors/FailProcessor.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<FailProcessor>))]
1213
public interface IFailProcessor : IProcessor
1314
{
1415
[JsonProperty("message")]
@@ -21,14 +22,13 @@ public class FailProcessor : ProcessorBase, IFailProcessor
2122
public string Message { get; set; }
2223
}
2324

24-
public class FailProcessorDescriptor<T>
25-
: ProcessorDescriptorBase<FailProcessorDescriptor<T>, IFailProcessor>, IFailProcessor
26-
where T : class
25+
public class FailProcessorDescriptor
26+
: ProcessorDescriptorBase<FailProcessorDescriptor, IFailProcessor>, IFailProcessor
2727
{
2828
protected override string Name => "fail";
2929

3030
string IFailProcessor.Message { get; set; }
3131

32-
public FailProcessorDescriptor<T> Message(string message) => Assign(a => a.Message = message);
32+
public FailProcessorDescriptor Message(string message) => Assign(a => a.Message = message);
3333
}
3434
}

Diff for: src/Nest/Ingest/Processors/ForeachProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<ForeachProcessor>))]
1213
public interface IForeachProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/GrokProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<GrokProcessor>))]
1213
public interface IGrokProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/GsubProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<GsubProcessor>))]
1213
public interface IGsubProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/JoinProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<JoinProcessor>))]
1213
public interface IJoinProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/LowercaseProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<LowercaseProcessor>))]
1213
public interface ILowercaseProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/RemoveProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<RemoveProcessor>))]
1213
public interface IRemoveProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/RenameProcessor.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
namespace Nest
1111
{
1212
[JsonObject(MemberSerialization.OptIn)]
13+
[JsonConverter(typeof(ProcessorJsonConverter<RenameProcessor>))]
1314
public interface IRenameProcessor : IProcessor
1415
{
1516
[JsonProperty("field")]
@@ -30,7 +31,7 @@ public class RenameProcessorDescriptor<T>
3031
: ProcessorDescriptorBase<RenameProcessorDescriptor<T>, IRenameProcessor>, IRenameProcessor
3132
where T : class
3233
{
33-
protected override string Name => "convert";
34+
protected override string Name => "rename";
3435
Field IRenameProcessor.Field { get; set; }
3536
Field IRenameProcessor.TargetField { get; set; }
3637

Diff for: src/Nest/Ingest/Processors/SetProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Nest
99
{
1010
[JsonObject(MemberSerialization.OptIn)]
11+
[JsonConverter(typeof(ProcessorJsonConverter<SetProcessor>))]
1112
public interface ISetProcessor : IProcessor
1213
{
1314
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/SplitProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<SplitProcessor>))]
1213
public interface ISplitProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/TrimProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<TrimProcessor>))]
1213
public interface ITrimProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/Processors/UppercaseProcessor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Nest
1010
{
1111
[JsonObject(MemberSerialization.OptIn)]
12+
[JsonConverter(typeof(ProcessorJsonConverter<UppercaseProcessor>))]
1213
public interface IUppercaseProcessor : IProcessor
1314
{
1415
[JsonProperty("field")]

Diff for: src/Nest/Ingest/ProcessorsDescriptor.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public ProcessorsDescriptor Date<T>(Func<DateProcessorDescriptor<T>, IDateProces
1919
Assign(a => a.AddIfNotNull(selector?.Invoke(new DateProcessorDescriptor<T>())));
2020

2121

22-
public ProcessorsDescriptor Fail<T>(Func<FailProcessorDescriptor<T>, IFailProcessor> selector) where T : class =>
23-
Assign(a => a.AddIfNotNull(selector?.Invoke(new FailProcessorDescriptor<T>())));
22+
public ProcessorsDescriptor Fail(Func<FailProcessorDescriptor, IFailProcessor> selector) =>
23+
Assign(a => a.AddIfNotNull(selector?.Invoke(new FailProcessorDescriptor())));
2424

2525

2626
public ProcessorsDescriptor Foreach<T>(Func<ForeachProcessorDescriptor<T>, IForeachProcessor> selector) where T : class =>

Diff for: src/Nest/Nest.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,7 @@
754754
<Compile Include="Ingest\GetPipeline\GetPipelineResponse.cs" />
755755
<Compile Include="Ingest\Pipeline.cs" />
756756
<Compile Include="Ingest\Processor.cs" />
757+
<Compile Include="Ingest\ProcessorJsonConverter.cs" />
757758
<Compile Include="Ingest\ProcessorsDescriptor.cs" />
758759
<Compile Include="Ingest\Processors\UppercaseProcessor.cs" />
759760
<Compile Include="Ingest\Processors\TrimProcessor.cs" />

0 commit comments

Comments
 (0)