Skip to content

Commit 528fa63

Browse files
committed
Fix #1026: Get endpoint should allow 404
1 parent 2a84275 commit 528fa63

File tree

4 files changed

+48
-15
lines changed

4 files changed

+48
-15
lines changed

src/CodeGeneration/CodeGeneration.LowLevelClient/Overrides/Allow404/ApiEndpointsThatAllow404.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public static class ApiEndpointsThatAllow404
1717
"AliasExists",
1818
"TemplateExists",
1919
"TypeExists",
20-
"Exists"
20+
"Exists",
21+
"Get"
2122
};
2223
}
2324
}

src/Elasticsearch.Net/ElasticsearchClient.Generated.cs

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8722,9 +8722,15 @@ public ElasticsearchResponse<T> Get<T>(string index, string type, string id, Fun
87228722
var url = "{0}/{1}/{2}".F(Encoded(index), Encoded(type), Encoded(id));
87238723
IRequestParameters requestParams = null;
87248724

8725-
if (requestParameters != null)
8726-
{
8727-
requestParams = requestParameters(new GetRequestParameters());
8725+
requestParameters = requestParameters ?? (s => s);
8726+
var passIn = new GetRequestParameters();
8727+
requestParams = requestParameters(passIn);
8728+
if (requestParams.RequestConfiguration == null)
8729+
requestParams.RequestConfiguration = new RequestConfiguration { AllowedStatusCodes = new [] { 404 } };
8730+
else {
8731+
if (requestParams.RequestConfiguration.AllowedStatusCodes == null) {
8732+
requestParams.RequestConfiguration.AllowedStatusCodes = new [] { 404 };
8733+
}
87288734
}
87298735

87308736

@@ -8760,9 +8766,15 @@ public Task<ElasticsearchResponse<T>> GetAsync<T>(string index, string type, str
87608766
var url = "{0}/{1}/{2}".F(Encoded(index), Encoded(type), Encoded(id));
87618767
IRequestParameters requestParams = null;
87628768

8763-
if (requestParameters != null)
8764-
{
8765-
requestParams = requestParameters(new GetRequestParameters());
8769+
requestParameters = requestParameters ?? (s => s);
8770+
var passIn = new GetRequestParameters();
8771+
requestParams = requestParameters(passIn);
8772+
if (requestParams.RequestConfiguration == null)
8773+
requestParams.RequestConfiguration = new RequestConfiguration { AllowedStatusCodes = new [] { 404 } };
8774+
else {
8775+
if (requestParams.RequestConfiguration.AllowedStatusCodes == null) {
8776+
requestParams.RequestConfiguration.AllowedStatusCodes = new [] { 404 };
8777+
}
87668778
}
87678779

87688780

@@ -8800,9 +8812,15 @@ public ElasticsearchResponse<DynamicDictionary> Get(string index, string type, s
88008812
var url = "{0}/{1}/{2}".F(Encoded(index), Encoded(type), Encoded(id));
88018813
IRequestParameters requestParams = null;
88028814

8803-
if (requestParameters != null)
8804-
{
8805-
requestParams = requestParameters(new GetRequestParameters());
8815+
requestParameters = requestParameters ?? (s => s);
8816+
var passIn = new GetRequestParameters();
8817+
requestParams = requestParameters(passIn);
8818+
if (requestParams.RequestConfiguration == null)
8819+
requestParams.RequestConfiguration = new RequestConfiguration { AllowedStatusCodes = new [] { 404 } };
8820+
else {
8821+
if (requestParams.RequestConfiguration.AllowedStatusCodes == null) {
8822+
requestParams.RequestConfiguration.AllowedStatusCodes = new [] { 404 };
8823+
}
88068824
}
88078825

88088826

@@ -8840,9 +8858,15 @@ public Task<ElasticsearchResponse<DynamicDictionary>> GetAsync(string index, str
88408858
var url = "{0}/{1}/{2}".F(Encoded(index), Encoded(type), Encoded(id));
88418859
IRequestParameters requestParams = null;
88428860

8843-
if (requestParameters != null)
8844-
{
8845-
requestParams = requestParameters(new GetRequestParameters());
8861+
requestParameters = requestParameters ?? (s => s);
8862+
var passIn = new GetRequestParameters();
8863+
requestParams = requestParameters(passIn);
8864+
if (requestParams.RequestConfiguration == null)
8865+
requestParams.RequestConfiguration = new RequestConfiguration { AllowedStatusCodes = new [] { 404 } };
8866+
else {
8867+
if (requestParams.RequestConfiguration.AllowedStatusCodes == null) {
8868+
requestParams.RequestConfiguration.AllowedStatusCodes = new [] { 404 };
8869+
}
88468870
}
88478871

88488872

src/Elasticsearch.Net/IElasticsearchClient.Generated.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20079,7 +20079,7 @@ public interface IElasticsearchClient
2007920079
///</returns>
2008020080

2008120081
Task<ElasticsearchResponse<DynamicDictionary>> UpdateAsync(string index, string type, string id, object body, Func<UpdateRequestParameters, UpdateRequestParameters> requestParameters = null);
20082-
20082+
2008320083
/// <summary>
2008420084
/// Perform any request you want over the configured IConnection synchronously while taking advantage of the cluster failover.
2008520085
/// </summary>
@@ -20100,6 +20100,6 @@ public interface IElasticsearchClient
2010020100
/// <param name="data">The body of the request, string and byte[] are posted as is other types will be serialized to JSON</param>
2010120101
/// <param name="requestParameters">Optionally configure request specific timeouts, headers</param>
2010220102
/// <returns>A task of ElasticsearchResponse of T where T represents the JSON response body</returns>
20103-
Task<ElasticsearchResponse<T>> DoRequestAsync<T>(string method, string path, object data = null, IRequestParameters requestParameters = null);
20103+
Task<ElasticsearchResponse<T>> DoRequestAsync<T>(string method, string path, object data = null, IRequestParameters requestParameters = null);
2010420104
}
2010520105
}

src/Tests/Nest.Tests.Integration/Core/Get/GetTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,13 @@ public void GetWithFieldsDeep()
4646
Assert.IsNotEmpty(list);
4747

4848
}
49+
50+
[Test]
51+
public void GetDocumentThatDoesntExist()
52+
{
53+
var result = this.Client.Get<ElasticsearchProject>("this-doc-id-doesnt-exist");
54+
Assert.IsTrue(result.IsValid);
55+
Assert.IsFalse(result.Found);
56+
}
4957
}
5058
}

0 commit comments

Comments
 (0)