Skip to content

Commit 9d99df2

Browse files
committed
Add manual Create, Index and Update overloads
1 parent 00c8b42 commit 9d99df2

File tree

1 file changed

+45
-48
lines changed

1 file changed

+45
-48
lines changed

src/Elastic.Clients.Elasticsearch.Shared/Client/ElasticsearchClient-Manual.cs

Lines changed: 45 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -14,117 +14,114 @@ namespace Elastic.Clients.Elasticsearch;
1414

1515
public partial class ElasticsearchClient
1616
{
17-
/// <summary>
18-
/// <para>Creates a new document in the index.</para>
19-
/// <para>Returns a 409 response when a document with a same ID already exists in the index.</para>
20-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html">Learn more about this API in the Elasticsearch documentation.</see></para>
21-
/// </summary>
17+
[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
2218
public virtual CreateResponse Create<TDocument>(TDocument document, IndexName index, Id id)
2319
{
2420
var descriptor = new CreateRequestDescriptor<TDocument>(document, index, id);
21+
descriptor.Document(document);
2522
descriptor.BeforeRequest();
2623
return DoRequest<CreateRequestDescriptor<TDocument>, CreateResponse, CreateRequestParameters>(descriptor);
2724
}
2825

29-
/// <summary>
30-
/// <para>Creates a new document in the index.</para>
31-
/// <para>Returns a 409 response when a document with a same ID already exists in the index.</para>
32-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html">Learn more about this API in the Elasticsearch documentation.</see></para>
33-
/// </summary>
3426
public virtual Task<CreateResponse> CreateAsync<TDocument>(TDocument document, IndexName index, Id id, CancellationToken cancellationToken = default)
3527
{
3628
var descriptor = new CreateRequestDescriptor<TDocument>(document, index, id);
29+
descriptor.Document(document);
3730
descriptor.BeforeRequest();
38-
return DoRequestAsync<CreateRequestDescriptor<TDocument>, CreateResponse, CreateRequestParameters>(descriptor);
31+
return DoRequestAsync<CreateRequestDescriptor<TDocument>, CreateResponse, CreateRequestParameters>(descriptor, cancellationToken);
3932
}
4033

41-
/// <summary>
42-
/// <para>Creates or updates a document in an index.</para>
43-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html">Learn more about this API in the Elasticsearch documentation.</see></para>
44-
/// </summary>
34+
public virtual Task<CreateResponse> CreateAsync<TDocument>(TDocument document, Action<CreateRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
35+
{
36+
var descriptor = new CreateRequestDescriptor<TDocument>(document);
37+
descriptor.Document(document);
38+
configureRequest?.Invoke(descriptor);
39+
descriptor.BeforeRequest();
40+
return DoRequestAsync<CreateRequestDescriptor<TDocument>, CreateResponse, CreateRequestParameters>(descriptor, cancellationToken);
41+
}
42+
43+
[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
4544
public virtual IndexResponse Index<TDocument>(TDocument document)
4645
{
4746
var descriptor = new IndexRequestDescriptor<TDocument>(document);
47+
descriptor.Document(document);
4848
descriptor.BeforeRequest();
4949
return DoRequest<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor);
5050
}
5151

52-
/// <summary>
53-
/// <para>Creates or updates a document in an index.</para>
54-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html">Learn more about this API in the Elasticsearch documentation.</see></para>
55-
/// </summary>
52+
[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
5653
public virtual IndexResponse Index<TDocument>(TDocument document, IndexName index)
5754
{
5855
var descriptor = new IndexRequestDescriptor<TDocument>(document, index);
56+
descriptor.Document(document);
5957
descriptor.BeforeRequest();
6058
return DoRequest<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor);
6159
}
6260

63-
/// <summary>
64-
/// <para>Creates or updates a document in an index.</para>
65-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html">Learn more about this API in the Elasticsearch documentation.</see></para>
66-
/// </summary>
67-
public virtual Task<IndexResponse> IndexAsync<TDocument>(TDocument document,CancellationToken cancellationToken = default)
61+
public virtual Task<IndexResponse> IndexAsync<TDocument>(TDocument document, CancellationToken cancellationToken = default)
6862
{
6963
var descriptor = new IndexRequestDescriptor<TDocument>(document);
64+
descriptor.Document(document);
7065
descriptor.BeforeRequest();
71-
return DoRequestAsync<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor);
66+
return DoRequestAsync<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor, cancellationToken);
7267
}
7368

74-
/// <summary>
75-
/// <para>Creates or updates a document in an index.</para>
76-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html">Learn more about this API in the Elasticsearch documentation.</see></para>
77-
/// </summary>
7869
public virtual Task<IndexResponse> IndexAsync<TDocument>(TDocument document, IndexName index, CancellationToken cancellationToken = default)
7970
{
8071
var descriptor = new IndexRequestDescriptor<TDocument>(document, index);
72+
descriptor.Document(document);
73+
descriptor.BeforeRequest();
74+
return DoRequestAsync<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor, cancellationToken);
75+
}
76+
77+
public virtual Task<IndexResponse> IndexAsync<TDocument>(TDocument document, Action<IndexRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
78+
{
79+
var descriptor = new IndexRequestDescriptor<TDocument>(document);
80+
descriptor.Document(document);
81+
configureRequest?.Invoke(descriptor);
8182
descriptor.BeforeRequest();
82-
return DoRequestAsync<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor);
83+
return DoRequestAsync<IndexRequestDescriptor<TDocument>, IndexResponse, IndexRequestParameters>(descriptor, cancellationToken);
8384
}
8485

85-
/// <summary>
86-
/// <para>Updates a document with a script or partial document.</para>
87-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html">Learn more about this API in the Elasticsearch documentation.</see></para>
88-
/// </summary>
8986
public virtual Task<UpdateResponse<TDocument>> UpdateAsync<TDocument, TPartialDocument>(IndexName index, Id id, CancellationToken cancellationToken = default)
9087
{
9188
var descriptor = new UpdateRequestDescriptor<TDocument, TPartialDocument>(index, id);
9289
return DoRequestAsync<UpdateRequestDescriptor<TDocument, TPartialDocument>, UpdateResponse<TDocument>, UpdateRequestParameters>(descriptor, cancellationToken);
9390
}
9491

95-
/// <summary>
96-
/// <para>Updates a document with a script or partial document.</para>
97-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html">Learn more about this API in the Elasticsearch documentation.</see></para>
98-
/// </summary>
92+
[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
9993
public virtual UpdateResponse<TDocument> Update<TDocument, TPartialDocument>(TDocument document, TPartialDocument partialDocument, IndexName index, Id id)
10094
{
10195
var descriptor = new UpdateRequestDescriptor<TDocument, TPartialDocument>(index, id);
102-
descriptor.BeforeRequest();
10396
descriptor.Upsert(document);
10497
descriptor.Doc(partialDocument);
98+
descriptor.BeforeRequest();
10599
return DoRequest<UpdateRequestDescriptor<TDocument, TPartialDocument>, UpdateResponse<TDocument>, UpdateRequestParameters>(descriptor);
106100
}
107101

108-
/// <summary>
109-
/// <para>Updates a document with a script or partial document.</para>
110-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html">Learn more about this API in the Elasticsearch documentation.</see></para>
111-
/// </summary>
112102
public virtual Task<UpdateResponse<TDocument>> UpdateAsync<TDocument, TPartialDocument>(TDocument document, TPartialDocument partialDocument, IndexName index, Id id, CancellationToken cancellationToken = default)
113103
{
114104
var descriptor = new UpdateRequestDescriptor<TDocument, TPartialDocument>(index, id);
115-
descriptor.BeforeRequest();
116105
descriptor.Upsert(document);
117106
descriptor.Doc(partialDocument);
107+
descriptor.BeforeRequest();
118108
return DoRequestAsync<UpdateRequestDescriptor<TDocument, TPartialDocument>, UpdateResponse<TDocument>, UpdateRequestParameters>(descriptor, cancellationToken);
119109
}
120110

121-
/// <summary>
122-
/// <para>Updates a document with a script or partial document.</para>
123-
/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html">Learn more about this API in the Elasticsearch documentation.</see></para>
124-
/// </summary>
111+
[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
125112
public virtual UpdateResponse<TDocument> Update<TDocument, TPartialDocument>(IndexName index, Id id)
126113
{
127114
var descriptor = new UpdateRequestDescriptor<TDocument, TPartialDocument>(index, id);
128115
return DoRequest<UpdateRequestDescriptor<TDocument, TPartialDocument>, UpdateResponse<TDocument>, UpdateRequestParameters>(descriptor);
129116
}
117+
118+
public virtual Task<UpdateResponse<TDocument>> UpdateAsync<TDocument, TPartialDocument>(TDocument document, TPartialDocument partialDocument, Action<UpdateRequestDescriptor<TDocument, TPartialDocument>> configureRequest, CancellationToken cancellationToken = default)
119+
{
120+
var descriptor = new UpdateRequestDescriptor<TDocument, TPartialDocument>(typeof(TDocument), Id.From(document));
121+
descriptor.Upsert(document);
122+
descriptor.Doc(partialDocument);
123+
configureRequest?.Invoke(descriptor);
124+
descriptor.BeforeRequest();
125+
return DoRequestAsync<UpdateRequestDescriptor<TDocument, TPartialDocument>, UpdateResponse<TDocument>, UpdateRequestParameters>(descriptor, cancellationToken);
126+
}
130127
}

0 commit comments

Comments
 (0)