Skip to content

Commit 634208c

Browse files
authored
Merge pull request #27 from contentstack/next
EarlyAccess Header support and AddQuery method in ParamCollection
2 parents 21a2acb + 45bcf4a commit 634208c

File tree

16 files changed

+83
-37
lines changed

16 files changed

+83
-37
lines changed

.github/workflows/sast-scan.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.

.github/workflows/secrets-scan.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [v0.1.4](https://github.com/contentstack/contentstack-management-dotnet/tree/v0.1.4) (2024-01-22)
4+
5+
## [v0.1.3](https://github.com/contentstack/contentstack-management-dotnet/tree/v0.1.3) (2023-04-04)
6+
37
## [v0.1.2](https://github.com/contentstack/contentstack-management-dotnet/tree/v0.1.2) (2023-03-07)
48

59
## [v0.1.1](https://github.com/contentstack/contentstack-management-dotnet/tree/v0.1.1) (2022-12-16)

Contentstack.Management.ASPNETCore/contentstack.management.aspnetcore.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.1</TargetFramework>
55
<PackageId>contentstack.management.aspnetcore</PackageId>
6-
<PackageVersion>0.1.2</PackageVersion>
6+
<PackageVersion>0.1.4</PackageVersion>
77
<Authors>Contentstack</Authors>
88
<Copyright>Copyright © 2012-2023 Contentstack. All Rights Reserved</Copyright>
99
<Owners>Contentstack </Owners>
@@ -14,8 +14,8 @@
1414
<Title>Contentstack Management</Title>
1515
<Description>.NET SDK for the Contentstack Content Management API.</Description>
1616
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
17-
<PackageTags>v0.1.2</PackageTags>
18-
<ReleaseVersion>0.1.3</ReleaseVersion>
17+
<PackageTags>v0.1.4</PackageTags>
18+
<ReleaseVersion>0.1.4</ReleaseVersion>
1919
<RootNamespace>Contentstack.Management.ASPNETCore</RootNamespace>
2020
</PropertyGroup>
2121

@@ -28,6 +28,6 @@
2828
<ItemGroup>
2929
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
3030
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
31-
<PackageReference Include="contentstack.management.csharp" Version="0.1.1" />
31+
<PackageReference Include="contentstack.management.csharp" Version="0.1.3" />
3232
</ItemGroup>
3333
</Project>

Contentstack.Management.Core.Tests/Contentstack.Management.Core.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFramework>net7.0</TargetFramework>
55

66
<IsPackable>false</IsPackable>
7-
<ReleaseVersion>0.1.3</ReleaseVersion>
7+
<ReleaseVersion>0.1.4</ReleaseVersion>
88
</PropertyGroup>
99

1010
<ItemGroup>

Contentstack.Management.Core.Unit.Tests/Contentstack.Management.Core.Unit.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFramework>net7.0</TargetFramework>
55

66
<IsPackable>false</IsPackable>
7-
<ReleaseVersion>0.1.3</ReleaseVersion>
7+
<ReleaseVersion>0.1.4</ReleaseVersion>
88
</PropertyGroup>
99

1010
<ItemGroup>

Contentstack.Management.Core.Unit.Tests/Core/ContentstackClientTest.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Contentstack.Management.Core.Unit.Tests.Mokes;
66
using Microsoft.VisualStudio.TestTools.UnitTesting;
77

8+
89
namespace Contentstack.Management.Core.Unit.Tests.Core
910
{
1011
[TestClass]
@@ -74,7 +75,8 @@ public void Initialize_Contentstack_With_Clientptions()
7475
Timeout= TimeSpan.FromSeconds(20),
7576
RetryOnError= false,
7677
ProxyHost= "proxyHost",
77-
ProxyPort= 22
78+
ProxyPort= 22,
79+
EarlyAccess = new string[] { "ea1", "ea2" }
7880
});
7981

8082
Assert.AreEqual("token", contentstackClient.contentstackOptions.Authtoken);
@@ -89,6 +91,7 @@ public void Initialize_Contentstack_With_Clientptions()
8991
Assert.IsTrue(contentstackClient.contentstackOptions.DisableLogging);
9092
Assert.AreEqual(1234, contentstackClient.contentstackOptions.MaxResponseContentBufferSize);
9193
Assert.AreEqual(20, contentstackClient.contentstackOptions.Timeout.Seconds);
94+
CollectionAssert.AreEqual(new string[] {"ea1", "ea2"}, contentstackClient.contentstackOptions.EarlyAccess);
9295
}
9396

9497
[TestMethod]

Contentstack.Management.Core.Unit.Tests/Queryable/ParameterCollectionTest.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using Contentstack.Management.Core.Queryable;
44
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
using Newtonsoft.Json.Linq;
56

67
namespace Contentstack.Management.Core.Unit.Tests.Queryable
78
{
@@ -84,5 +85,18 @@ public void Should_Add_Double_List_Value_Parameter_Collection()
8485
Assert.IsInstanceOfType(collection["param1"], typeof(DoubleListParameterValue));
8586
Assert.AreEqual(vs, (collection["param1"] as DoubleListParameterValue).Value);
8687
}
88+
89+
[TestMethod]
90+
public void Should_Add_Query_JObject_In_Parameter_Collection()
91+
{
92+
ParameterCollection collection = new ParameterCollection();
93+
JObject queryObject = JObject.Parse("{ \"price_in_usd\": { \"$lt\": 600 } }");
94+
95+
collection.AddQuery(queryObject);
96+
97+
Assert.IsTrue(collection.ContainsKey("query"));
98+
Assert.IsInstanceOfType(collection["query"], typeof(StringParameterValue));
99+
Assert.AreEqual(Uri.EscapeDataString(queryObject.ToString()), (collection["query"] as StringParameterValue).Value);
100+
}
87101
}
88102
}

Contentstack.Management.Core.Unit.Tests/Utils/ContentstackUtilitiesTest.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Contentstack.Management.Core.Unit.Tests.Mokes;
44
using Contentstack.Management.Core.Utils;
55
using Microsoft.VisualStudio.TestTools.UnitTesting;
6+
using Newtonsoft.Json.Linq;
67

78
namespace Contentstack.Management.Core.Unit.Tests.Utils
89
{
@@ -89,9 +90,12 @@ public void Return_Query_Parameters_On_ParameterCollection()
8990
param.Add("limit", 10);
9091
param.Add("include", "type");
9192

93+
JObject q_obj = JObject.Parse("{ \"price_in_usd\": { \"$lt\": 600 } }");
94+
param.AddQuery(q_obj);
95+
9296
var result = ContentstackUtilities.GetQueryParameter(param);
9397

94-
Assert.AreEqual("include=type&limit=10", result);
98+
Assert.AreEqual("include=type&limit=10&query=%7B%0D%0A%20%20%22price_in_usd%22%3A%20%7B%0D%0A%20%20%20%20%22%24lt%22%3A%20600%0D%0A%20%20%7D%0D%0A%7D", result);
9599
}
96100

97101
[TestMethod]

Contentstack.Management.Core/ContentstackClient.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class ContentstackClient : IContentstackClient
3535
private HttpClient _httpClient;
3636
private bool _disposed = false;
3737

38-
private string Version => "0.1.2";
38+
private string Version => "0.1.4";
3939
private string xUserAgent => $"contentstack-management-dotnet/{Version}";
4040
#endregion
4141

@@ -96,7 +96,7 @@ public ContentstackClient(ContentstackClientOptions contentstackOptions) :
9696
/// </code></pre>
9797
/// </example>
9898
public ContentstackClient(
99-
string authtoken = null,
99+
string authtoken = null,
100100
string host = "api.contentstack.io",
101101
int port = 443,
102102
string version = "v3",
@@ -148,6 +148,10 @@ protected void Initialize()
148148
_httpClient.Timeout = contentstackOptions.Timeout;
149149
_httpClient.MaxResponseContentBufferSize = contentstackOptions.MaxResponseContentBufferSize;
150150
LogManager = contentstackOptions.DisableLogging ? LogManager.EmptyLogger : LogManager.GetLogManager(GetType());
151+
152+
if (contentstackOptions.EarlyAccess != null) {
153+
_httpClient.DefaultRequestHeaders.Add(HeadersKey.EarlyAccessHeader, string.Join(",", contentstackOptions.EarlyAccess));
154+
}
151155
}
152156

153157
SerializerSettings.DateParseHandling = DateParseHandling.None;

0 commit comments

Comments
 (0)