Skip to content

Commit 235c708

Browse files
committed
Finished implementing request and response bodies
1 parent d3f882e commit 235c708

File tree

8 files changed

+237
-36
lines changed

8 files changed

+237
-36
lines changed
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
using Newtonsoft.Json;
2+
using System.Collections.Generic;
23

34
namespace Nest
45
{
56
public interface IGetPipelineResponse : IResponse
67
{
7-
string Pipeline { get; }
8+
Pipeline Source { get; }
89
}
910

1011
[JsonObject(MemberSerialization.OptIn)]
1112
public class GetPipelineResponse : ResponseBase, IGetPipelineResponse
1213
{
13-
[JsonProperty("script")]
14-
public string Pipeline { get; set; }
14+
[JsonProperty("_source")]
15+
public Pipeline Source { get; internal set; }
16+
17+
[JsonProperty("_version")]
18+
public int Version { get; internal set; }
1519
}
1620
}

src/Nest/Ingest/Pipeline.cs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
[JsonObject(MemberSerialization.OptIn)]
11+
public interface IPipeline
12+
{
13+
[JsonProperty("description")]
14+
string Description { get; set; }
15+
16+
[JsonProperty("processors")]
17+
IEnumerable<IProcessor> Processors { get; set; }
18+
19+
[JsonProperty("on_failure")]
20+
IEnumerable<IProcessor> OnFailure { get; set; }
21+
}
22+
23+
public class Pipeline : IPipeline
24+
{
25+
public string Description { get; set; }
26+
27+
public IEnumerable<IProcessor> OnFailure { get; set; }
28+
29+
public IEnumerable<IProcessor> Processors { get; set; }
30+
}
31+
32+
public class PipelineDescriptor : DescriptorBase<PipelineDescriptor, IPipeline>, IPipeline
33+
{
34+
string IPipeline.Description { get; set; }
35+
IEnumerable<IProcessor> IPipeline.Processors { get; set; }
36+
IEnumerable<IProcessor> IPipeline.OnFailure { get; set; }
37+
38+
/// <inheritdoc/>
39+
public PipelineDescriptor Description(string description) => Assign(a => a.Description = description);
40+
41+
/// <inheritdoc/>
42+
public PipelineDescriptor Processors(IEnumerable<IProcessor> processors) => Assign(a => a.Processors = processors.ToListOrNullIfEmpty());
43+
44+
/// <inheritdoc/>
45+
public PipelineDescriptor Processors(Func<ProcessorsDescriptor, IPromise<IList<IProcessor>>> selector) =>
46+
Assign(a => a.Processors = selector?.Invoke(new ProcessorsDescriptor())?.Value);
47+
48+
/// <inheritdoc/>
49+
public PipelineDescriptor OnFailure(IEnumerable<IProcessor> processors) => Assign(a => a.OnFailure = processors.ToListOrNullIfEmpty());
50+
51+
/// <inheritdoc/>
52+
public PipelineDescriptor OnFailure(Func<ProcessorsDescriptor, IPromise<IList<IProcessor>>> selector) =>
53+
Assign(a => a.OnFailure = selector?.Invoke(new ProcessorsDescriptor())?.Value);
54+
}
55+
}

src/Nest/Ingest/PutPipeline/PutPipelineRequest.cs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,7 @@
44

55
namespace Nest
66
{
7-
public partial interface IPutPipelineRequest
8-
{
9-
[JsonProperty("description")]
10-
string Description { get; set; }
11-
12-
[JsonProperty("processors")]
13-
IEnumerable<IProcessor> Processors { get; set; }
14-
15-
[JsonProperty("on_failure")]
16-
IEnumerable<IProcessor> OnFailure { get; set; }
17-
18-
}
7+
public partial interface IPutPipelineRequest : IPipeline { }
198

209
public partial class PutPipelineRequest
2110
{
@@ -27,9 +16,9 @@ public partial class PutPipelineRequest
2716
[DescriptorFor("IngestPutPipeline")]
2817
public partial class PutPipelineDescriptor
2918
{
30-
string IPutPipelineRequest.Description { get; set; }
31-
IEnumerable<IProcessor> IPutPipelineRequest.Processors { get; set; }
32-
IEnumerable<IProcessor> IPutPipelineRequest.OnFailure { get; set; }
19+
string IPipeline.Description { get; set; }
20+
IEnumerable<IProcessor> IPipeline.Processors { get; set; }
21+
IEnumerable<IProcessor> IPipeline.OnFailure { get; set; }
3322

3423
/// <inheritdoc/>
3524
public PutPipelineDescriptor Description(string description) => Assign(a => a.Description = description);

src/Nest/Ingest/SimulatePipeline/SimulatePiipelineResponse.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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+
[JsonObject(MemberSerialization.OptIn)]
11+
public interface ISimulatePipelineDocument
12+
{
13+
[JsonProperty("_index")]
14+
IndexName Index { get; set; }
15+
16+
[JsonProperty("_type")]
17+
TypeName Type { get; set; }
18+
19+
[JsonProperty("_id")]
20+
Id Id { get; set; }
21+
22+
[JsonProperty("_source")]
23+
object Source { get; set; }
24+
}
25+
26+
public class SimulatePipelineDocument : ISimulatePipelineDocument
27+
{
28+
public IndexName Index { get; set; }
29+
30+
public TypeName Type { get; set; }
31+
32+
public Id Id { get; set; }
33+
34+
private object _source;
35+
public object Source
36+
{
37+
get { return _source; }
38+
set
39+
{
40+
_source = value;
41+
this.Index = this.Index ?? _source.GetType();
42+
this.Type = this.Type ?? _source.GetType();
43+
this.Id = this.Id ?? Id.From(_source);
44+
}
45+
}
46+
}
47+
48+
public class SimulatePipelineDocumentDescriptor
49+
: DescriptorBase<SimulatePipelineDocumentDescriptor, ISimulatePipelineDocument>, ISimulatePipelineDocument
50+
{
51+
Id ISimulatePipelineDocument.Id { get; set; }
52+
IndexName ISimulatePipelineDocument.Index { get; set; }
53+
TypeName ISimulatePipelineDocument.Type { get; set; }
54+
object ISimulatePipelineDocument.Source { get; set; }
55+
56+
public SimulatePipelineDocumentDescriptor Id(Id id) => Assign(a => a.Id = id);
57+
public SimulatePipelineDocumentDescriptor Index(IndexName index) => Assign(a => a.Index = index);
58+
public SimulatePipelineDocumentDescriptor Type(TypeName type) => Assign(a => a.Type = type);
59+
public SimulatePipelineDocumentDescriptor Source<T>(T source) where T : class => Assign(a =>
60+
{
61+
a.Source = source;
62+
a.Index = a.Index ?? source.GetType();
63+
a.Type = a.Type ?? source.GetType();
64+
a.Id = a.Id ?? Nest.Id.From(source);
65+
});
66+
}
67+
68+
public class SimulatePipelineDocumentsDescriptor
69+
: DescriptorPromiseBase<SimulatePipelineDocumentsDescriptor, IList<ISimulatePipelineDocument>>
70+
{
71+
public SimulatePipelineDocumentsDescriptor() : base(new List<ISimulatePipelineDocument>()) { }
72+
73+
public SimulatePipelineDocumentsDescriptor Document(Func<SimulatePipelineDocumentDescriptor, ISimulatePipelineDocument> selector) =>
74+
this.Assign(a => a.AddIfNotNull(selector?.Invoke(new SimulatePipelineDocumentDescriptor())));
75+
}
76+
}
Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,38 @@
11
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
24

35
namespace Nest
46
{
57
public partial interface ISimulatePipelineRequest
68
{
7-
[JsonProperty("script")]
8-
string Pipeline { get; set; }
9+
[JsonProperty("pipeline")]
10+
Pipeline Pipeline { get; set; }
11+
12+
[JsonProperty("docs")]
13+
IEnumerable<ISimulatePipelineDocument> Documents { get; set; }
914
}
1015

1116
public partial class SimulatePipelineRequest
1217
{
13-
public string Pipeline { get; set; }
18+
public Pipeline Pipeline { get; set; }
19+
20+
public IEnumerable<ISimulatePipelineDocument> Documents { get; set; }
1421
}
1522

1623
[DescriptorFor("IngestSimulate")]
1724
public partial class SimulatePipelineDescriptor
1825
{
19-
string ISimulatePipelineRequest.Pipeline { get; set; }
26+
Pipeline ISimulatePipelineRequest.Pipeline { get; set; }
27+
28+
IEnumerable<ISimulatePipelineDocument> ISimulatePipelineRequest.Documents { get; set; }
29+
30+
public SimulatePipelineDescriptor Pipeline(Func<PipelineDescriptor, Pipeline> pipeline) =>
31+
Assign(a => a.Pipeline = pipeline?.Invoke(new PipelineDescriptor()));
32+
33+
public SimulatePipelineDescriptor Documents(IEnumerable<ISimulatePipelineDocument> documents) => Assign(a => a.Documents = documents);
2034

21-
public SimulatePipelineDescriptor Pipeline(string script) => Assign(a => a.Pipeline = script);
35+
public SimulatePipelineDescriptor Documents(Func<SimulatePipelineDocumentsDescriptor, IPromise<IList<ISimulatePipelineDocument>>> selector) =>
36+
Assign(a => a.Documents = selector?.Invoke(new SimulatePipelineDocumentsDescriptor())?.Value);
2237
}
2338
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
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+
[JsonObject(MemberSerialization.OptIn)]
11+
public interface ISimulatePipelineResponse : IResponse
12+
{
13+
[JsonProperty("docs")]
14+
List<PipelineSimulation> Documents { get; set; }
15+
}
16+
17+
public class SimulatePipelineResponse : ResponseBase, ISimulatePipelineResponse
18+
{
19+
public List<PipelineSimulation> Documents { get; set; }
20+
}
21+
22+
[JsonObject(MemberSerialization.OptIn)]
23+
public class PipelineSimulation
24+
{
25+
[JsonProperty("processor_results")]
26+
public List<PipelineSimulation> ProcessorResults { get; internal set; }
27+
28+
[JsonProperty("tag")]
29+
public string Tag { get; internal set; }
30+
31+
[JsonProperty("doc")]
32+
public DocumentSimulation Document { get; internal set; }
33+
34+
[JsonProperty("_ingest")]
35+
public Ingest Ingest { get; internal set; }
36+
}
37+
38+
[JsonObject(MemberSerialization.OptIn)]
39+
public class DocumentSimulation
40+
{
41+
[JsonProperty("_index")]
42+
public string Index { get; internal set; }
43+
44+
[JsonProperty("_type")]
45+
public string Type { get; internal set; }
46+
47+
[JsonProperty("_id")]
48+
public string Id { get; internal set; }
49+
50+
[JsonProperty("_parent")]
51+
public string Parent { get; internal set; }
52+
53+
[JsonProperty("_routing")]
54+
public string Routing { get; internal set; }
55+
56+
[JsonProperty("_timestamp")]
57+
public long? Timestamp { get; internal set; }
58+
59+
[JsonProperty("_ttl")]
60+
public long? Ttl { get; internal set; }
61+
62+
[JsonProperty("_source")]
63+
public object Source { get; internal set; }
64+
}
65+
66+
[JsonObject(MemberSerialization.OptIn)]
67+
public class Ingest
68+
{
69+
[JsonProperty("_timestamp")]
70+
public long? Timestamp { get; internal set; }
71+
}
72+
}

src/Nest/Nest.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,7 @@
752752
<Compile Include="Ingest\GetPipeline\ElasticClient-GetPipeline.cs" />
753753
<Compile Include="Ingest\GetPipeline\GetPipelineRequest.cs" />
754754
<Compile Include="Ingest\GetPipeline\GetPipelineResponse.cs" />
755+
<Compile Include="Ingest\Pipeline.cs" />
755756
<Compile Include="Ingest\Processor.cs" />
756757
<Compile Include="Ingest\ProcessorsDescriptor.cs" />
757758
<Compile Include="Ingest\Processors\UppercaseProcessor.cs" />
@@ -770,8 +771,9 @@
770771
<Compile Include="Ingest\Processors\ConvertProcessor.cs" />
771772
<Compile Include="Ingest\Processors\AppendProcessor.cs" />
772773
<Compile Include="Ingest\SimulatePipeline\ElasticClient-SimulatePipeline.cs" />
774+
<Compile Include="Ingest\SimulatePipeline\SimulatePipelineDocument.cs" />
773775
<Compile Include="Ingest\SimulatePipeline\SimulatePipelineRequest.cs" />
774-
<Compile Include="Ingest\SimulatePipeline\SimulatePiipelineResponse.cs" />
776+
<Compile Include="Ingest\SimulatePipeline\SimulatePipelineResponse.cs" />
775777
<Compile Include="Ingest\PutPipeline\ElasticClient-PutPipeline.cs" />
776778
<Compile Include="Ingest\PutPipeline\PutPipelineRequest.cs" />
777779
<Compile Include="Ingest\PutPipeline\PutPipelineResponse.cs" />

0 commit comments

Comments
 (0)