Skip to content

Commit b9b9667

Browse files
authored
Merge pull request #501 from DiscoPYF/496-deprecatePostTransactionAsync
Mark PostTransactionAsync as deprecated since ArangoDB 3.12
2 parents 9e07c63 + 8162f33 commit b9b9667

File tree

5 files changed

+22
-6
lines changed

5 files changed

+22
-6
lines changed

arangodb-net-standard.Test/Serialization/JsonNetApiClientSerializationTest.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using ArangoDBNetStandard.Serialization;
33
using ArangoDBNetStandard.TransactionApi.Models;
44
using ArangoDBNetStandardTest.Serialization.Models;
5-
using Newtonsoft.Json;
5+
using System;
66
using System.Collections.Generic;
77
using System.IO;
88
using System.Text;
@@ -184,7 +184,7 @@ public void Serialize_ShouldCamelCaseBindVars_WhenSerializingPostCursorBodyWithD
184184
var serialization = new JsonNetApiClientSerialization();
185185

186186
byte[] jsonBytes = serialization.Serialize(body, new ApiClientSerializationOptions(
187-
useCamelCasePropertyNames: true,
187+
useCamelCasePropertyNames: true,
188188
ignoreNullValues: true,
189189
applySerializationOptionsToDictionaryValues: true));
190190

@@ -197,6 +197,7 @@ public void Serialize_ShouldCamelCaseBindVars_WhenSerializingPostCursorBodyWithD
197197
}
198198

199199
[Fact]
200+
[Obsolete]
200201
public void Serialize_ShouldNotCamelCaseParams_WhenSerializingPostTransactionBody()
201202
{
202203
var body = new PostTransactionBody
@@ -223,6 +224,7 @@ public void Serialize_ShouldNotCamelCaseParams_WhenSerializingPostTransactionBod
223224

224225

225226
[Fact]
227+
[Obsolete]
226228
public void Serialize_ShouldCamelCaseParams_WhenSerializingPostTransactionBodyWithDictionaryOption()
227229
{
228230
var body = new PostTransactionBody
@@ -268,6 +270,7 @@ public void Serialize_ShouldNotIgnoreNull_WhenSerializingPostCursorBody()
268270
}
269271

270272
[Fact]
273+
[Obsolete]
271274
public void Serialize_ShouldNotIgnoreNull_WhenSerializingPostTransactionBody()
272275
{
273276
var body = new PostTransactionBody

arangodb-net-standard.Test/TransactionApi/TransactionApiClientTest.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Linq;
34
using System.Threading.Tasks;
45
using ArangoDBNetStandard;
@@ -250,6 +251,7 @@ public async Task GetTransactionStatus_ShouldThrowException_WhenTheTransctionIdI
250251
/// Tests that a post JS transaction succeeds.
251252
/// </summary>
252253
[Fact]
254+
[Obsolete]
253255
public async Task PostTransaction_ShouldSucceed()
254256
{
255257
await _adb.Document.PostDocumentAsync(
@@ -295,6 +297,7 @@ await _adb.Document.PostDocumentAsync(
295297
/// </summary>
296298
/// <exception cref="ApiErrorException">With ErrorNum 10 missing/invalid action definition for transaction.</exception>
297299
[Fact]
300+
[Obsolete]
298301
public async Task PostTransaction_ShouldThrow_WhenFunctionDefinitionHasSyntaxErrors()
299302
{
300303
var ex = await Assert.ThrowsAsync<ApiErrorException>(async () =>
@@ -314,6 +317,7 @@ await _adb.Transaction.PostTransactionAsync<object>(new PostTransactionBody
314317
/// </summary>
315318
/// <exception cref="ApiErrorException">With ErrorNum 10 missing/invalid collections definition for transaction.</exception>
316319
[Fact]
320+
[Obsolete]
317321
public async Task PostTransaction_ShouldThrow_WhenWriteCollectionIsNotDeclared()
318322
{
319323
var ex = await Assert.ThrowsAsync<ApiErrorException>(async () =>

arangodb-net-standard/TransactionApi/ITransactionApiClient.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Threading;
1+
using System;
2+
using System.Threading;
23
using System.Threading.Tasks;
34
using ArangoDBNetStandard.TransactionApi.Models;
45

@@ -87,12 +88,17 @@ Task<StreamTransactionResponse> GetTransactionStatus(string transactionId,
8788
CancellationToken token = default);
8889

8990
/// <summary>
90-
/// POST a transaction to ArangoDB.
91+
/// [DEPRECATED] POST a JavaScript Transaction to ArangoDB.
9192
/// </summary>
93+
/// <remarks>
94+
/// JavaScript Transactions are deprecated from v3.12.0 onward and will be removed in a future version.
95+
/// https://docs.arangodb.com/stable/release-notes/version-3.12/incompatible-changes-in-3-12/#javascript-transactions-deprecated
96+
/// </remarks>
9297
/// <typeparam name="T">Type to use for deserializing the object returned by the transaction function.</typeparam>
9398
/// <param name="body">Object containing information to submit in the POST transaction request.</param>
9499
/// <param name="token">A CancellationToken to observe while waiting for the task to complete or to cancel the task.</param>
95100
/// <returns>Response from ArangoDB after processing the request.</returns>
101+
[Obsolete("JavaScript Transactions are deprecated in ArangoDB 3.12, use Stream Transactions instead.")]
96102
Task<PostTransactionResponse<T>> PostTransactionAsync<T>(PostTransactionBody body,
97103
CancellationToken token = default);
98104
}

arangodb-net-standard/TransactionApi/Models/PostTransactionBody.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23

34
namespace ArangoDBNetStandard.TransactionApi.Models
45
{
56
/// <summary>
67
/// Represents information required to make a transaction request to ArangoDB.
78
/// </summary>
9+
[Obsolete]
810
public class PostTransactionBody
911
{
1012
/// <summary>

arangodb-net-standard/TransactionApi/TransactionApiClient.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public TransactionApiClient(IApiClientTransport client, IApiClientSerialization
6161
/// <param name="body">Object containing information to submit in the POST transaction request.</param>
6262
/// <param name="token">A CancellationToken to observe while waiting for the task to complete or to cancel the task.</param>
6363
/// <returns>Response from ArangoDB after processing the request.</returns>
64+
[Obsolete]
6465
public virtual async Task<PostTransactionResponse<T>> PostTransactionAsync<T>(
6566
PostTransactionBody body,
6667
CancellationToken token = default)

0 commit comments

Comments
 (0)