Skip to content

Commit 6b1f59c

Browse files
committed
Partial support for Get/Put/Delete search templates
1 parent 63c088a commit 6b1f59c

9 files changed

+284
-1
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using Elasticsearch.Net;
2+
using Newtonsoft.Json;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
8+
namespace Nest
9+
{
10+
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
11+
public interface IDeleteSearchTemplateRequest : INamePath<SearchTemplateRequestParameters> { }
12+
13+
public partial class DeleteSearchTemplateRequest
14+
: NamePathBase<SearchTemplateRequestParameters>, IDeleteSearchTemplateRequest
15+
{
16+
public DeleteSearchTemplateRequest(string templateName)
17+
: base(templateName)
18+
{
19+
}
20+
21+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
22+
{
23+
DeleteSearchTemplatePathInfo.Update(pathInfo);
24+
}
25+
}
26+
27+
internal static class DeleteSearchTemplatePathInfo
28+
{
29+
public static void Update(ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
30+
{
31+
pathInfo.HttpMethod = PathInfoHttpMethod.GET;
32+
}
33+
}
34+
35+
[DescriptorFor("SearchTemplateDelete")]
36+
public partial class DeleteSearchTemplateDescriptor
37+
: NamePathDescriptor<DeleteSearchTemplateDescriptor, SearchTemplateRequestParameters>, IDeleteSearchTemplateRequest
38+
{
39+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
40+
{
41+
DeleteSearchTemplatePathInfo.Update(pathInfo);
42+
}
43+
}
44+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using Elasticsearch.Net;
2+
using Newtonsoft.Json;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
8+
namespace Nest
9+
{
10+
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
11+
public interface IGetSearchTemplateRequest : INamePath<SearchTemplateRequestParameters>
12+
{
13+
}
14+
15+
public partial class GetSearchTemplateRequest
16+
: NamePathBase<SearchTemplateRequestParameters>, IGetSearchTemplateRequest
17+
{
18+
public GetSearchTemplateRequest(string templateName)
19+
: base(templateName)
20+
{
21+
}
22+
23+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
24+
{
25+
GetSearchTemplatePathInfo.Update(pathInfo);
26+
}
27+
}
28+
29+
internal static class GetSearchTemplatePathInfo
30+
{
31+
public static void Update(ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
32+
{
33+
pathInfo.HttpMethod = PathInfoHttpMethod.GET;
34+
}
35+
}
36+
37+
[DescriptorFor("SearchTemplateGet")]
38+
public partial class GetSearchTemplateDescriptor
39+
: NamePathDescriptor<GetSearchTemplateDescriptor, SearchTemplateRequestParameters>, IGetSearchTemplateRequest
40+
{
41+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
42+
{
43+
GetSearchTemplatePathInfo.Update(pathInfo);
44+
}
45+
}
46+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
using Elasticsearch.Net;
2+
using Newtonsoft.Json;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
8+
namespace Nest
9+
{
10+
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
11+
public interface IPutSearchTemplateRequest : INamePath<SearchTemplateRequestParameters>
12+
{
13+
}
14+
15+
public partial class PutSearchTemplateRequest : NamePathBase<SearchTemplateRequestParameters>, IPutSearchTemplateRequest
16+
{
17+
public PutSearchTemplateRequest(string templateName)
18+
: base(templateName)
19+
{
20+
}
21+
22+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
23+
{
24+
PutSearchTemplatePathInfo.Update(pathInfo);
25+
}
26+
}
27+
28+
internal static class PutSearchTemplatePathInfo
29+
{
30+
public static void Update(ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
31+
{
32+
pathInfo.HttpMethod = PathInfoHttpMethod.POST;
33+
}
34+
}
35+
36+
[DescriptorFor("SearchTemplatePut")]
37+
public partial class PutSearchTemplateDescriptor
38+
: NamePathDescriptor<PutSearchTemplateDescriptor, SearchTemplateRequestParameters>, IPutSearchTemplateRequest
39+
{
40+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<SearchTemplateRequestParameters> pathInfo)
41+
{
42+
PutSearchTemplatePathInfo.Update(pathInfo);
43+
}
44+
}
45+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace Nest
7+
{
8+
public interface IDeleteSearchTemplateResponse : IResponse
9+
{
10+
}
11+
12+
public class DeleteSearchTemplateResponse : BaseResponse, IDeleteSearchTemplateResponse
13+
{
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace Nest
7+
{
8+
public interface IGetSearchTemplateResponse : IResponse
9+
{
10+
}
11+
12+
public class GetSearchTemplateResponse : BaseResponse, IGetSearchTemplateResponse
13+
{
14+
}
15+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace Nest
7+
{
8+
public interface IPutSearchTemplateResponse : IResponse
9+
{
10+
11+
}
12+
13+
public class PutSearchTemplateResponse : BaseResponse, IPutSearchTemplateResponse
14+
{
15+
}
16+
}

src/Nest/ElasticClient-SearchTemplate.cs

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace Nest
1111
{
12-
public partial class ElasticClient : IElasticClient
12+
public partial class ElasticClient
1313
{
1414
public ISearchResponse<T> SearchTemplate<T>(Func<SearchTemplateDescriptor<T>, SearchTemplateDescriptor<T>> selector) where T : class
1515
{
@@ -131,5 +131,65 @@ private JsonConverter CreateCovariantSearchSelector<T, TResult>(ISearchTemplateR
131131
SearchTemplatePathInfo.CloseOverAutomagicCovariantResultSelector(this.Infer, originalSearchDescriptor);
132132
return originalSearchDescriptor.TypeSelector == null ? null : new ConcreteTypeConverter<TResult>(originalSearchDescriptor.TypeSelector);
133133
}
134+
135+
public IGetSearchTemplateResponse GetSearchTemplate(Func<GetSearchTemplateDescriptor, GetSearchTemplateDescriptor> selector)
136+
{
137+
throw new NotImplementedException();
138+
}
139+
140+
public IGetSearchTemplateResponse GetSearchTemplate(IGetSearchTemplateRequest request)
141+
{
142+
throw new NotImplementedException();
143+
}
144+
145+
public Task<IGetSearchTemplateResponse> GetSearchTemplateAsync(Func<GetSearchTemplateDescriptor, GetSearchTemplateDescriptor> selector)
146+
{
147+
throw new NotImplementedException();
148+
}
149+
150+
public Task<IGetSearchTemplateResponse> GetSearchTemplateAsync(IGetSearchTemplateRequest request)
151+
{
152+
throw new NotImplementedException();
153+
}
154+
155+
public IPutSearchTemplateResponse PutSearchTemplate(Func<PutSearchTemplateDescriptor, PutSearchTemplateDescriptor> selector)
156+
{
157+
throw new NotImplementedException();
158+
}
159+
160+
public IPutSearchTemplateResponse PutSearchTemplate(IPutSearchTemplateRequest request)
161+
{
162+
throw new NotImplementedException();
163+
}
164+
165+
public Task<IPutSearchTemplateResponse> PutSearchTemplateAsync(Func<PutSearchTemplateDescriptor, PutSearchTemplateDescriptor> selector)
166+
{
167+
throw new NotImplementedException();
168+
}
169+
170+
public Task<IPutSearchTemplateResponse> PutSearchTemplateAsync(IPutSearchTemplateRequest request)
171+
{
172+
throw new NotImplementedException();
173+
}
174+
175+
public IDeleteSearchTemplateResponse DeleteSearchTemplate(Func<DeleteSearchTemplateDescriptor, DeleteSearchTemplateDescriptor> selector)
176+
{
177+
throw new NotImplementedException();
178+
}
179+
180+
public IDeleteSearchTemplateResponse DeleteSearchTemplate(IDeleteSearchTemplateRequest request)
181+
{
182+
throw new NotImplementedException();
183+
}
184+
185+
public Task<IDeleteSearchTemplateResponse> DeleteSearchTemplateAsync(Func<DeleteSearchTemplateDescriptor, DeleteSearchTemplateDescriptor> selector)
186+
{
187+
throw new NotImplementedException();
188+
}
189+
190+
public Task<IDeleteSearchTemplateResponse> DeleteSearchTemplateAsync(IDeleteSearchTemplateRequest request)
191+
{
192+
throw new NotImplementedException();
193+
}
134194
}
135195
}

src/Nest/IElasticClient.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,42 @@ Task<ISearchResponse<TResult>> SearchTemplateAsync<T, TResult>(ISearchTemplateRe
816816
where T : class
817817
where TResult : class;
818818

819+
/// <inheritdoc />
820+
IGetSearchTemplateResponse GetSearchTemplate(Func<GetSearchTemplateDescriptor, GetSearchTemplateDescriptor> selector);
821+
822+
/// <inheritdoc />
823+
IGetSearchTemplateResponse GetSearchTemplate(IGetSearchTemplateRequest request);
824+
825+
/// <inheritdoc />
826+
Task<IGetSearchTemplateResponse> GetSearchTemplateAsync(Func<GetSearchTemplateDescriptor, GetSearchTemplateDescriptor> selector);
827+
828+
/// <inheritdoc />
829+
Task<IGetSearchTemplateResponse> GetSearchTemplateAsync(IGetSearchTemplateRequest request);
830+
831+
/// <inheritdoc />
832+
IPutSearchTemplateResponse PutSearchTemplate(Func<PutSearchTemplateDescriptor, PutSearchTemplateDescriptor> selector);
833+
834+
/// <inheritdoc />
835+
IPutSearchTemplateResponse PutSearchTemplate(IPutSearchTemplateRequest request);
836+
837+
/// <inheritdoc />
838+
Task<IPutSearchTemplateResponse> PutSearchTemplateAsync(Func<PutSearchTemplateDescriptor, PutSearchTemplateDescriptor> selector);
839+
840+
/// <inheritdoc />
841+
Task<IPutSearchTemplateResponse> PutSearchTemplateAsync(IPutSearchTemplateRequest request);
842+
843+
/// <inheritdoc />
844+
IDeleteSearchTemplateResponse DeleteSearchTemplate(Func<DeleteSearchTemplateDescriptor, DeleteSearchTemplateDescriptor> selector);
845+
846+
/// <inheritdoc />
847+
IDeleteSearchTemplateResponse DeleteSearchTemplate(IDeleteSearchTemplateRequest request);
848+
849+
/// <inheritdoc />
850+
Task<IDeleteSearchTemplateResponse> DeleteSearchTemplateAsync(Func<DeleteSearchTemplateDescriptor, DeleteSearchTemplateDescriptor> selector);
851+
852+
/// <inheritdoc />
853+
Task<IDeleteSearchTemplateResponse> DeleteSearchTemplateAsync(IDeleteSearchTemplateRequest request);
854+
819855
/// <summary>
820856
/// The multi search API allows to execute several search requests within the same API.
821857
/// <para> </para>http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-multi-search.html

src/Nest/Nest.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,15 @@
179179
<Compile Include="Domain\Cat\CatNodesRecord.cs" />
180180
<Compile Include="Domain\Responses\ClusterStatsResponse.cs" />
181181
<Compile Include="Domain\Responses\ClusterPendingTasksResponse.cs" />
182+
<Compile Include="Domain\Responses\DeleteSearchTemplateResponse.cs" />
182183
<Compile Include="Domain\Responses\ExplainResponse.cs" />
183184
<Compile Include="Domain\Responses\GetFieldMappingResponse.cs" />
184185
<Compile Include="Domain\Cat\ICatRecord.cs" />
186+
<Compile Include="Domain\Responses\GetSearchTemplateResponse.cs" />
185187
<Compile Include="Domain\Responses\MultiPercolateResponse.cs" />
186188
<Compile Include="Domain\Responses\NodesHotThreadsResponse.cs" />
187189
<Compile Include="Domain\Responses\CatResponse.cs" />
190+
<Compile Include="Domain\Responses\PutSearchTemplateResponse.cs" />
188191
<Compile Include="Domain\Stats\ClusterNodesStas.cs" />
189192
<Compile Include="Domain\Stats\CompletionStats.cs" />
190193
<Compile Include="Domain\Stats\FieldDataStats.cs" />
@@ -196,6 +199,9 @@
196199
<Compile Include="Domain\Stats\SegmentsStats.cs" />
197200
<Compile Include="Domain\Template\ITemplateSection.cs" />
198201
<Compile Include="Domain\Template\TemplateBuilder.cs" />
202+
<Compile Include="DSL\PutSearchTemplateDescriptor.cs" />
203+
<Compile Include="DSL\DeleteSearchTemplateDescriptor.cs" />
204+
<Compile Include="DSL\GetSearchTemplateDescriptor.cs" />
199205
<Compile Include="DSL\Template\TemplateSectionQueryContainer.cs" />
200206
<Compile Include="DSL\Template\TemplateSectionSortFieldDescriptor.cs" />
201207
<Compile Include="DSL\CatIndicesDescriptor.cs" />

0 commit comments

Comments
 (0)