Skip to content

Commit 0a0fd8a

Browse files
committed
Refactoring due to OIS
while introducing more Object Initializer syntax api endpoints it became clear all the base path descriptors need simplified versions too which in turn meant that requestparameters and requestconfiguration needed to be abstracted to interfaces as well. Misc refactoring: - Deserialization state now typed to Func<IElasticsearchResponse, Stream, object> instead of just object. - no more seperate interface for request and connection settings merged into one
1 parent 56a772f commit 0a0fd8a

File tree

62 files changed

+1909
-2813
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1909
-2813
lines changed

src/CodeGeneration/CodeGeneration.LowLevelClient/ApiGenerator.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ public static void GenerateDescriptors(RestApiSpec model)
200200

201201
public static void GenerateRequestParameters(RestApiSpec model)
202202
{
203-
var targetFile = _esNetFolder + @"Domain\RequestParameters.Generated.cs";
203+
var targetFile = _esNetFolder + @"Domain\RequestParameters\RequestParameters.Generated.cs";
204204
var source = _razorMachine.Execute(File.ReadAllText(_viewFolder + @"RequestParameters.Generated.cshtml"), model).ToString();
205205
File.WriteAllText(targetFile, source);
206206
}

src/CodeGeneration/CodeGeneration.LowLevelClient/Overrides/Descriptors/PutTemplateDescriptorOverrides.cs

+14
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,18 @@ public IEnumerable<string> SkipQueryStringParams
1818
}
1919
}
2020
}
21+
22+
public class UpdateDescriptorOverrides : IDescriptorOverrides
23+
{
24+
public IEnumerable<string> SkipQueryStringParams
25+
{
26+
get
27+
{
28+
return new string[]
29+
{
30+
"fields"
31+
};
32+
}
33+
}
34+
}
2135
}

src/CodeGeneration/CodeGeneration.LowLevelClient/Views/ElasticsearchClient.Generated.cshtml

+5-6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ using System.Collections.Specialized;
1010
using System.Linq;
1111
using System.Text;
1212
using System.Threading.Tasks;
13+
using Elasticsearch.Net.Connection.Configuration;
1314

1415
///Generated File Please Do Not Edit Manually
1516
@{
@@ -63,23 +64,22 @@ namespace Elasticsearch.Net
6364
{
6465
<text>var url = "@(url)";</text>
6566
}
66-
BaseRequestParameters requestParams = null;
67+
IRequestParameters requestParams = null;
6768
@if (url.StartsWith("_cat") || method.Allow404)
6869
{
6970
var config = new List<string>();
7071
if (url.StartsWith("_cat"))
7172
{
72-
config.Add("ContentType(\"text/plain\")");
73+
config.Add("ContentType = \"text/plain\"");
7374
}
7475
if (method.Allow404)
7576
{
76-
config.Add("AllowStatusCodes(404)");
77+
config.Add("AllowedStatusCodes = new [] { 404 }");
7778
}
7879
<text>
7980
requestParameters = requestParameters ?? (s => s);
8081
requestParams = requestParameters(new @(method.QueryStringParamName)());
81-
(requestParams as @method.QueryStringParamName).RequestConfiguration(r=>r.@Raw(string.Join(".", config)));
82-
ToNameValueCollection(requestParams);
82+
requestParams.RequestConfiguration = new RequestConfiguration { @Raw(string.Join(", ", config)) };
8383
</text>
8484
}
8585
else
@@ -88,7 +88,6 @@ namespace Elasticsearch.Net
8888
if (requestParameters != null)
8989
{
9090
requestParams = requestParameters(new @(method.QueryStringParamName)());
91-
ToNameValueCollection(requestParams);
9291
}
9392
</text>
9493
}

src/Connections/Elasticsearch.Net.Connection.HttpClient/HttpClientConnection.cs

+17-16
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Net.Http;
55
using System.Net.Http.Headers;
66
using System.Threading.Tasks;
7+
using Elasticsearch.Net.Connection.Configuration;
78

89
namespace Elasticsearch.Net.Connection
910
{
@@ -78,7 +79,7 @@ public HttpClientConnection(IConnectionConfigurationValues settings, HttpClientH
7879
/// <param name="data">The data.</param>
7980
/// <param name="requestSpecificConfig">The request specific configuration.</param>
8081
/// <returns>ElasticsearchResponse&lt;Stream&gt;.</returns>
81-
public ElasticsearchResponse<Stream> DoRequestSync(HttpMethod method, Uri uri, byte[] data = null, IRequestConnectionConfiguration requestSpecificConfig = null)
82+
public ElasticsearchResponse<Stream> DoRequestSync(HttpMethod method, Uri uri, byte[] data = null, IRequestConfiguration requestSpecificConfig = null)
8283
{
8384
ThrowIfDisposed();
8485

@@ -107,7 +108,7 @@ public ElasticsearchResponse<Stream> DoRequestSync(HttpMethod method, Uri uri, b
107108
/// <param name="data">The data.</param>
108109
/// <param name="requestSpecificConfig">The request specific configuration.</param>
109110
/// <returns>Task&lt;ElasticsearchResponse&lt;Stream&gt;&gt;.</returns>
110-
public async Task<ElasticsearchResponse<Stream>> DoRequest(HttpMethod method, Uri uri, byte[] data = null, IRequestConnectionConfiguration requestSpecificConfig = null)
111+
public async Task<ElasticsearchResponse<Stream>> DoRequest(HttpMethod method, Uri uri, byte[] data = null, IRequestConfiguration requestSpecificConfig = null)
111112
{
112113
ThrowIfDisposed();
113114

@@ -119,9 +120,9 @@ public async Task<ElasticsearchResponse<Stream>> DoRequest(HttpMethod method, Ur
119120
{
120121
request.Content = new ByteArrayContent(data);
121122

122-
if (requestSpecificConfig != null && !string.IsNullOrWhiteSpace(requestSpecificConfig.AcceptsContentType))
123+
if (requestSpecificConfig != null && !string.IsNullOrWhiteSpace(requestSpecificConfig.ContentType))
123124
{
124-
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(requestSpecificConfig.AcceptsContentType));
125+
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(requestSpecificConfig.ContentType));
125126
}
126127
else if (!string.IsNullOrWhiteSpace(DefaultContentType))
127128
{
@@ -151,62 +152,62 @@ public async Task<ElasticsearchResponse<Stream>> DoRequest(HttpMethod method, Ur
151152
}
152153
}
153154

154-
Task<ElasticsearchResponse<Stream>> IConnection.Get(Uri uri, IRequestConnectionConfiguration requestSpecificConfig)
155+
Task<ElasticsearchResponse<Stream>> IConnection.Get(Uri uri, IRequestConfiguration requestSpecificConfig)
155156
{
156157
return DoRequest(HttpMethod.Get, uri, null, requestSpecificConfig);
157158
}
158159

159-
ElasticsearchResponse<Stream> IConnection.GetSync(Uri uri, IRequestConnectionConfiguration requestSpecificConfig)
160+
ElasticsearchResponse<Stream> IConnection.GetSync(Uri uri, IRequestConfiguration requestSpecificConfig)
160161
{
161162
return DoRequestSync(HttpMethod.Get, uri, null, requestSpecificConfig);
162163
}
163164

164-
Task<ElasticsearchResponse<Stream>> IConnection.Head(Uri uri, IRequestConnectionConfiguration requestSpecificConfig)
165+
Task<ElasticsearchResponse<Stream>> IConnection.Head(Uri uri, IRequestConfiguration requestSpecificConfig)
165166
{
166167
return DoRequest(HttpMethod.Head, uri, null, requestSpecificConfig);
167168
}
168169

169-
ElasticsearchResponse<Stream> IConnection.HeadSync(Uri uri, IRequestConnectionConfiguration requestSpecificConfig)
170+
ElasticsearchResponse<Stream> IConnection.HeadSync(Uri uri, IRequestConfiguration requestSpecificConfig)
170171
{
171172
return DoRequestSync(HttpMethod.Head, uri, null, requestSpecificConfig);
172173
}
173174

174-
Task<ElasticsearchResponse<Stream>> IConnection.Post(Uri uri, byte[] data, IRequestConnectionConfiguration requestSpecificConfig)
175+
Task<ElasticsearchResponse<Stream>> IConnection.Post(Uri uri, byte[] data, IRequestConfiguration requestSpecificConfig)
175176
{
176177
return DoRequest(HttpMethod.Post, uri, data, requestSpecificConfig);
177178
}
178179

179-
ElasticsearchResponse<Stream> IConnection.PostSync(Uri uri, byte[] data, IRequestConnectionConfiguration requestSpecificConfig)
180+
ElasticsearchResponse<Stream> IConnection.PostSync(Uri uri, byte[] data, IRequestConfiguration requestSpecificConfig)
180181
{
181182
return DoRequestSync(HttpMethod.Post, uri, data, requestSpecificConfig);
182183
}
183184

184-
Task<ElasticsearchResponse<Stream>> IConnection.Put(Uri uri, byte[] data, IRequestConnectionConfiguration requestSpecificConfig)
185+
Task<ElasticsearchResponse<Stream>> IConnection.Put(Uri uri, byte[] data, IRequestConfiguration requestSpecificConfig)
185186
{
186187
return DoRequest(HttpMethod.Put, uri, data, requestSpecificConfig);
187188
}
188189

189-
ElasticsearchResponse<Stream> IConnection.PutSync(Uri uri, byte[] data, IRequestConnectionConfiguration requestSpecificConfig)
190+
ElasticsearchResponse<Stream> IConnection.PutSync(Uri uri, byte[] data, IRequestConfiguration requestSpecificConfig)
190191
{
191192
return DoRequestSync(HttpMethod.Put, uri, data, requestSpecificConfig);
192193
}
193194

194-
Task<ElasticsearchResponse<Stream>> IConnection.Delete(Uri uri, IRequestConnectionConfiguration requestSpecificConfig)
195+
Task<ElasticsearchResponse<Stream>> IConnection.Delete(Uri uri, IRequestConfiguration requestSpecificConfig)
195196
{
196197
return DoRequest(HttpMethod.Delete, uri, null, requestSpecificConfig);
197198
}
198199

199-
ElasticsearchResponse<Stream> IConnection.DeleteSync(Uri uri, IRequestConnectionConfiguration requestSpecificConfig)
200+
ElasticsearchResponse<Stream> IConnection.DeleteSync(Uri uri, IRequestConfiguration requestSpecificConfig)
200201
{
201202
return DoRequestSync(HttpMethod.Delete, uri, null, requestSpecificConfig);
202203
}
203204

204-
Task<ElasticsearchResponse<Stream>> IConnection.Delete(Uri uri, byte[] data, IRequestConnectionConfiguration requestSpecificConfig)
205+
Task<ElasticsearchResponse<Stream>> IConnection.Delete(Uri uri, byte[] data, IRequestConfiguration requestSpecificConfig)
205206
{
206207
return DoRequest(HttpMethod.Delete, uri, data, requestSpecificConfig);
207208
}
208209

209-
ElasticsearchResponse<Stream> IConnection.DeleteSync(Uri uri, byte[] data, IRequestConnectionConfiguration requestSpecificConfig)
210+
ElasticsearchResponse<Stream> IConnection.DeleteSync(Uri uri, byte[] data, IRequestConfiguration requestSpecificConfig)
210211
{
211212
return DoRequestSync(HttpMethod.Delete, uri, data, requestSpecificConfig);
212213
}

src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs

+26-25
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Text;
1010
using System.Threading;
1111
using System.Threading.Tasks;
12+
using Elasticsearch.Net.Connection.Configuration;
1213
using Elasticsearch.Net.Connection.Thrift.Protocol;
1314
using Elasticsearch.Net.Connection.Thrift.Transport;
1415
using Elasticsearch.Net.ConnectionPool;
@@ -65,7 +66,7 @@ public ThriftConnection(IConnectionConfigurationValues connectionSettings)
6566

6667
#region IConnection Members
6768

68-
public Task<ElasticsearchResponse<Stream>> Get(Uri uri, IRequestConnectionConfiguration deserializationState = null)
69+
public Task<ElasticsearchResponse<Stream>> Get(Uri uri, IRequestConfiguration requestConfiguration = null)
6970
{
7071
var restRequest = new RestRequest();
7172
restRequest.Method = Method.GET;
@@ -75,11 +76,11 @@ public Task<ElasticsearchResponse<Stream>> Get(Uri uri, IRequestConnectionConfig
7576
restRequest.Headers.Add("Content-Type", "application/json");
7677
return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() =>
7778
{
78-
return this.Execute(restRequest, deserializationState);
79+
return this.Execute(restRequest, requestConfiguration);
7980
});
8081
}
8182

82-
public Task<ElasticsearchResponse<Stream>> Head(Uri uri, IRequestConnectionConfiguration deserializationState = null)
83+
public Task<ElasticsearchResponse<Stream>> Head(Uri uri, IRequestConfiguration requestConfiguration = null)
8384
{
8485
var restRequest = new RestRequest();
8586
restRequest.Method = Method.HEAD;
@@ -89,33 +90,33 @@ public Task<ElasticsearchResponse<Stream>> Head(Uri uri, IRequestConnectionConfi
8990
restRequest.Headers.Add("Content-Type", "application/json");
9091
return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() =>
9192
{
92-
return this.Execute(restRequest, deserializationState);
93+
return this.Execute(restRequest, requestConfiguration);
9394
});
9495
}
9596

96-
public ElasticsearchResponse<Stream> GetSync(Uri uri, IRequestConnectionConfiguration deserializationState = null)
97+
public ElasticsearchResponse<Stream> GetSync(Uri uri, IRequestConfiguration requestConfiguration = null)
9798
{
9899
var restRequest = new RestRequest();
99100
restRequest.Method = Method.GET;
100101
restRequest.Uri = uri;
101102

102103
restRequest.Headers = new Dictionary<string, string>();
103104
restRequest.Headers.Add("Content-Type", "application/json");
104-
return this.Execute(restRequest, deserializationState);
105+
return this.Execute(restRequest, requestConfiguration);
105106
}
106107

107-
public ElasticsearchResponse<Stream> HeadSync(Uri uri, IRequestConnectionConfiguration deserializationState = null)
108+
public ElasticsearchResponse<Stream> HeadSync(Uri uri, IRequestConfiguration requestConfiguration = null)
108109
{
109110
var restRequest = new RestRequest();
110111
restRequest.Method = Method.HEAD;
111112
restRequest.Uri = uri;
112113

113114
restRequest.Headers = new Dictionary<string, string>();
114115
restRequest.Headers.Add("Content-Type", "application/json");
115-
return this.Execute(restRequest, deserializationState);
116+
return this.Execute(restRequest, requestConfiguration);
116117
}
117118

118-
public Task<ElasticsearchResponse<Stream>> Post(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null)
119+
public Task<ElasticsearchResponse<Stream>> Post(Uri uri, byte[] data, IRequestConfiguration requestConfiguration = null)
119120
{
120121
var restRequest = new RestRequest();
121122
restRequest.Method = Method.POST;
@@ -126,10 +127,10 @@ public Task<ElasticsearchResponse<Stream>> Post(Uri uri, byte[] data, IRequestCo
126127
restRequest.Headers.Add("Content-Type", "application/json");
127128
return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() =>
128129
{
129-
return this.Execute(restRequest, deserializationState);
130+
return this.Execute(restRequest, requestConfiguration);
130131
});
131132
}
132-
public Task<ElasticsearchResponse<Stream>> Put(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null)
133+
public Task<ElasticsearchResponse<Stream>> Put(Uri uri, byte[] data, IRequestConfiguration requestConfiguration = null)
133134
{
134135
var restRequest = new RestRequest();
135136
restRequest.Method = Method.PUT;
@@ -140,10 +141,10 @@ public Task<ElasticsearchResponse<Stream>> Put(Uri uri, byte[] data, IRequestCon
140141
restRequest.Headers.Add("Content-Type", "application/json");
141142
return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() =>
142143
{
143-
return this.Execute(restRequest, deserializationState);
144+
return this.Execute(restRequest, requestConfiguration);
144145
});
145146
}
146-
public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null)
147+
public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, byte[] data, IRequestConfiguration requestConfiguration = null)
147148
{
148149
var restRequest = new RestRequest();
149150
restRequest.Method = Method.DELETE;
@@ -154,11 +155,11 @@ public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, byte[] data, IRequest
154155
restRequest.Headers.Add("Content-Type", "application/json");
155156
return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() =>
156157
{
157-
return this.Execute(restRequest, deserializationState);
158+
return this.Execute(restRequest, requestConfiguration);
158159
});
159160
}
160161

161-
public ElasticsearchResponse<Stream> PostSync(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null)
162+
public ElasticsearchResponse<Stream> PostSync(Uri uri, byte[] data, IRequestConfiguration requestConfiguration = null)
162163
{
163164
var restRequest = new RestRequest();
164165
restRequest.Method = Method.POST;
@@ -167,9 +168,9 @@ public ElasticsearchResponse<Stream> PostSync(Uri uri, byte[] data, IRequestConn
167168
restRequest.Body = data;
168169
restRequest.Headers = new Dictionary<string, string>();
169170
restRequest.Headers.Add("Content-Type", "application/json");
170-
return this.Execute(restRequest, deserializationState);
171+
return this.Execute(restRequest, requestConfiguration);
171172
}
172-
public ElasticsearchResponse<Stream> PutSync(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null)
173+
public ElasticsearchResponse<Stream> PutSync(Uri uri, byte[] data, IRequestConfiguration requestConfiguration = null)
173174
{
174175
var restRequest = new RestRequest();
175176
restRequest.Method = Method.PUT;
@@ -178,9 +179,9 @@ public ElasticsearchResponse<Stream> PutSync(Uri uri, byte[] data, IRequestConne
178179
restRequest.Body = data;
179180
restRequest.Headers = new Dictionary<string, string>();
180181
restRequest.Headers.Add("Content-Type", "application/json");
181-
return this.Execute(restRequest, deserializationState);
182+
return this.Execute(restRequest, requestConfiguration);
182183
}
183-
public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, IRequestConnectionConfiguration deserializationState = null)
184+
public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, IRequestConfiguration requestConfiguration = null)
184185
{
185186
var restRequest = new RestRequest();
186187
restRequest.Method = Method.DELETE;
@@ -190,21 +191,21 @@ public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, IRequestConnectionCon
190191
restRequest.Headers.Add("Content-Type", "application/json");
191192
return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() =>
192193
{
193-
return this.Execute(restRequest, deserializationState);
194+
return this.Execute(restRequest, requestConfiguration);
194195
});
195196
}
196197

197-
public ElasticsearchResponse<Stream> DeleteSync(Uri uri, IRequestConnectionConfiguration deserializationState = null)
198+
public ElasticsearchResponse<Stream> DeleteSync(Uri uri, IRequestConfiguration requestConfiguration = null)
198199
{
199200
var restRequest = new RestRequest();
200201
restRequest.Method = Method.DELETE;
201202
restRequest.Uri = uri;
202203

203204
restRequest.Headers = new Dictionary<string, string>();
204205
restRequest.Headers.Add("Content-Type", "application/json");
205-
return this.Execute(restRequest, deserializationState);
206+
return this.Execute(restRequest, requestConfiguration);
206207
}
207-
public ElasticsearchResponse<Stream> DeleteSync(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null)
208+
public ElasticsearchResponse<Stream> DeleteSync(Uri uri, byte[] data, IRequestConfiguration requestConfiguration = null)
208209
{
209210
var restRequest = new RestRequest();
210211
restRequest.Method = Method.DELETE;
@@ -213,7 +214,7 @@ public ElasticsearchResponse<Stream> DeleteSync(Uri uri, byte[] data, IRequestCo
213214
restRequest.Body = data;
214215
restRequest.Headers = new Dictionary<string, string>();
215216
restRequest.Headers.Add("Content-Type", "application/json");
216-
return this.Execute(restRequest, deserializationState);
217+
return this.Execute(restRequest, requestConfiguration);
217218
}
218219

219220

@@ -262,7 +263,7 @@ protected virtual void Dispose(bool disposing)
262263

263264

264265

265-
private ElasticsearchResponse<Stream> Execute(RestRequest restRequest, object deserializationState)
266+
private ElasticsearchResponse<Stream> Execute(RestRequest restRequest, object requestConfiguration)
266267
{
267268
//RestResponse result = GetClient().execute(restRequest);
268269
//

0 commit comments

Comments
 (0)