Skip to content

Commit 7ec02f2

Browse files
committed
feat: Early Access Header Support
1 parent 29e7b2d commit 7ec02f2

File tree

5 files changed

+15
-3
lines changed

5 files changed

+15
-3
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public void Initialize_Contentstack_With_Clientptions()
7474
Timeout= TimeSpan.FromSeconds(20),
7575
RetryOnError= false,
7676
ProxyHost= "proxyHost",
77-
ProxyPort= 22
77+
ProxyPort= 22,
78+
EarlyAccess = new string[] { "ea1", "ea2" }
7879
});
7980

8081
Assert.AreEqual("token", contentstackClient.contentstackOptions.Authtoken);
@@ -89,6 +90,8 @@ public void Initialize_Contentstack_With_Clientptions()
8990
Assert.IsTrue(contentstackClient.contentstackOptions.DisableLogging);
9091
Assert.AreEqual(1234, contentstackClient.contentstackOptions.MaxResponseContentBufferSize);
9192
Assert.AreEqual(20, contentstackClient.contentstackOptions.Timeout.Seconds);
93+
CollectionAssert.AreEqual(new string[] {"ea1", "ea2"}, contentstackClient.contentstackOptions.EarlyAccess);
94+
Assert.AreEqual("ea1,ea2", contentstackClient.DefaultRequestHeaders[HeadersKey.EarlyAccessHeader]);
9295
}
9396

9497
[TestMethod]

Contentstack.Management.Core/ContentstackClient.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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;

Contentstack.Management.Core/ContentstackClientOptions.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ public class ContentstackClientOptions
2222
/// </summary>
2323
public string Host { get; set; } = "api.contentstack.io";
2424

25+
/// <summary>
26+
/// The EarlyAccess used to set early access headers for the Contentstack Management API.
27+
/// </summary>
28+
public string[] EarlyAccess { get; set; }
2529

2630
/// <summary>
2731
/// The Host used to set host url for the Contentstack Management API.

Contentstack.Management.Core/Utils/HeadersKey.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public abstract class HeadersKey
66
public const string UserAgentHeader = "User-Agent";
77
public const string XUserAgentHeader = "X-User-Agent";
88
public const string ContentTypeHeader = "Content-Type";
9+
public const string EarlyAccessHeader = "x-header-ea";
910

1011
}
1112
}

Contentstack.Management.Core/contentstack.management.core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
</ItemGroup>
5757
<ItemGroup>
5858
<PackageReference Include="System.Net.Http" Version="4.3.4" />
59-
<PackageReference Include="Microsoft.Extensions.Options" Version="7.0.1" />
59+
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.0" />
6060
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
6161
</ItemGroup>
6262
</Project>

0 commit comments

Comments
 (0)