Skip to content

Development #55

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Oct 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## [v0.1.10](https://github.com/contentstack/contentstack-management-dotnet/tree/v0.1.10)
- Feat
- Add support for apiVersion in bulk publish unpublish methods

## [v0.1.9](https://github.com/contentstack/contentstack-management-dotnet/tree/v0.1.9)
- Fix
- Media header now added only to Assets API methods and removed from all others for both Sync and Async calls.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
<PackageReference Include="contentstack.management.csharp" Version="0.1.3" />
<PackageReference Include="contentstack.management.csharp" Version="0.1.8" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>net7.0</TargetFramework>

<IsPackable>false</IsPackable>
<ReleaseVersion>0.1.3</ReleaseVersion>
<ReleaseVersion>0.1.9</ReleaseVersion>

<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>../CSManagementSDK.snk</AssemblyOriginatorKeyFile>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ namespace Contentstack.Management.Core.Unit.Tests.Mokes
{
public class MockRetryHadler : PipelineHandler
{
public override Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public override Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
return base.InvokeAsync<T>(executionContext, addAcceptMediaHeader);
}

public override void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public override void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
base.InvokeSync(executionContext, addAcceptMediaHeader);
base.InvokeSync(executionContext, addAcceptMediaHeader, apiVersion);
}
}

Expand All @@ -32,7 +32,7 @@ public MockHttpHandler(ContentstackResponse response)
public ILogManager LogManager { get; set; }
public IPipelineHandler InnerHandler { get; set; }

public async Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public async Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
executionContext.ResponseContext.httpResponse = _response;

Expand All @@ -43,7 +43,7 @@ public async Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool add
return await Task.FromResult<T>((T)executionContext.ResponseContext.httpResponse);
}

public void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
executionContext.ResponseContext.httpResponse = _response;
if (executionContext.RequestContext.service != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ public bool HasRequestBody()
return HttpMethod == "POST" || HttpMethod == "PUT" || HttpMethod == "PATCH";
}

public virtual IHttpRequest CreateHttpRequest(HttpClient httpClient, ContentstackClientOptions config, bool addAcceptMediaHeader = false)
public virtual IHttpRequest CreateHttpRequest(HttpClient httpClient, ContentstackClientOptions config, bool addAcceptMediaHeader = false, string apiVersion = null)
{
var contentstackHttpRequest = new ContentstackHttpRequest(httpClient, _serializer);
contentstackHttpRequest.Method = new HttpMethod(HttpMethod);
Expand Down
8 changes: 4 additions & 4 deletions Contentstack.Management.Core/ContentstackClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ protected void BuildPipeline()
}, LogManager);
}

internal ContentstackResponse InvokeSync<TRequest>(TRequest request, bool addAcceptMediaHeader = false) where TRequest : IContentstackService
internal ContentstackResponse InvokeSync<TRequest>(TRequest request, bool addAcceptMediaHeader = false, string apiVersion = null) where TRequest : IContentstackService
{
ThrowIfDisposed();

Expand All @@ -191,10 +191,10 @@ internal ContentstackResponse InvokeSync<TRequest>(TRequest request, bool addAcc
},
new ResponseContext());

return (ContentstackResponse)ContentstackPipeline.InvokeSync(context, addAcceptMediaHeader).httpResponse;
return (ContentstackResponse)ContentstackPipeline.InvokeSync(context, addAcceptMediaHeader, apiVersion).httpResponse;
}

internal Task<TResponse> InvokeAsync<TRequest, TResponse>(TRequest request, bool addAcceptMediaHeader = false)
internal Task<TResponse> InvokeAsync<TRequest, TResponse>(TRequest request, bool addAcceptMediaHeader = false, string apiVersion = null)
where TRequest : IContentstackService
where TResponse : ContentstackResponse
{
Expand All @@ -207,7 +207,7 @@ internal Task<TResponse> InvokeAsync<TRequest, TResponse>(TRequest request, bool
service = request
},
new ResponseContext());
return ContentstackPipeline.InvokeAsync<TResponse>(context, addAcceptMediaHeader);
return ContentstackPipeline.InvokeAsync<TResponse>(context, addAcceptMediaHeader, apiVersion);
}

#region Dispose methods
Expand Down
16 changes: 8 additions & 8 deletions Contentstack.Management.Core/Models/Asset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -246,12 +246,12 @@ public virtual Task<ContentstackResponse> DeleteAsync()
/// </code></pre>
/// </example>
/// <returns>The <see cref="ContentstackResponse"/>.</returns>
public virtual ContentstackResponse Publish(PublishUnpublishDetails details)
public virtual ContentstackResponse Publish(PublishUnpublishDetails details, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/publish", "asset");
var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/publish", "asset", apiVersion);
return stack.client.InvokeSync(service);
}

Expand All @@ -266,12 +266,12 @@ public virtual ContentstackResponse Publish(PublishUnpublishDetails details)
/// </code></pre>
/// </example>
/// <returns>The <see cref="ContentstackResponse"/>.</returns>
public virtual Task<ContentstackResponse> PublishAsync(PublishUnpublishDetails details)
public virtual Task<ContentstackResponse> PublishAsync(PublishUnpublishDetails details, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/publish", "asset");
var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/publish", "asset", apiVersion);
return stack.client.InvokeAsync<PublishUnpublishService, ContentstackResponse>(service);
}

Expand All @@ -286,12 +286,12 @@ public virtual Task<ContentstackResponse> PublishAsync(PublishUnpublishDetails d
/// </code></pre>
/// </example>
/// <returns>The <see cref="ContentstackResponse"/>.</returns>
public virtual ContentstackResponse Unpublish(PublishUnpublishDetails details)
public virtual ContentstackResponse Unpublish(PublishUnpublishDetails details, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/unpublish", "asset");
var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/unpublish", "asset", apiVersion);
return stack.client.InvokeSync(service);
}

Expand All @@ -306,12 +306,12 @@ public virtual ContentstackResponse Unpublish(PublishUnpublishDetails details)
/// </code></pre>
/// </example>
/// <returns>The <see cref="ContentstackResponse"/>.</returns>
public virtual Task<ContentstackResponse> UnpublishAsync(PublishUnpublishDetails details)
public virtual Task<ContentstackResponse> UnpublishAsync(PublishUnpublishDetails details, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/unpublish", "asset");
var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/unpublish", "asset", apiVersion);
return stack.client.InvokeAsync<PublishUnpublishService, ContentstackResponse>(service);
}

Expand Down
14 changes: 7 additions & 7 deletions Contentstack.Management.Core/Models/Entry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@
/// <param name="details">Publish/Unpublish details.</param>
/// <param name="locale">Locale for entry to be publish</param>
/// <returns>The <see cref="ContentstackResponse"/>.</returns>
public virtual ContentstackResponse Publish(PublishUnpublishDetails details, string locale = null)
public virtual ContentstackResponse Publish(PublishUnpublishDetails details, string locale = null, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();
Expand All @@ -435,13 +435,13 @@
/// <param name="details">Publish/Unpublish details.</param>
/// <param name="locale">Locale for entry to be publish</param>
/// <returns>The Task</returns>
public virtual Task<ContentstackResponse> PublishAsync(PublishUnpublishDetails details, string locale = null)
public virtual Task<ContentstackResponse> PublishAsync(PublishUnpublishDetails details, string locale = null, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/publish", "entry", locale);
return stack.client.InvokeAsync<PublishUnpublishService, ContentstackResponse>(service);
return stack.client.InvokeAsync<PublishUnpublishService, ContentstackResponse>(service, apiVersion: apiVersion);
}

/// <summary>
Expand All @@ -456,13 +456,13 @@
/// <param name="details">Publish/Unpublish details.</param>
/// <param name="locale">Locale for entry to be publish</param>
/// <returns>The <see cref="ContentstackResponse"/>.</returns>
public virtual ContentstackResponse Unpublish(PublishUnpublishDetails details, string locale = null)
public virtual ContentstackResponse Unpublish(PublishUnpublishDetails details, string locale = null, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/unpublish", "entry", locale);
return stack.client.InvokeSync(service);
return stack.client.InvokeSync(service, apiVersion);

Check failure on line 465 in Contentstack.Management.Core/Models/Entry.cs

View workflow job for this annotation

GitHub Actions / unit-test

Argument 2: cannot convert from 'string' to 'bool'

Check failure on line 465 in Contentstack.Management.Core/Models/Entry.cs

View workflow job for this annotation

GitHub Actions / unit-test

Argument 2: cannot convert from 'string' to 'bool'
}

/// <summary>
Expand All @@ -477,13 +477,13 @@
/// <param name="details">Publish/Unpublish details.</param>
/// <param name="locale">Locale for entry to be publish</param>
/// <returns>The Task</returns>
public virtual Task<ContentstackResponse> UnpublishAsync(PublishUnpublishDetails details, string locale = null)
public virtual Task<ContentstackResponse> UnpublishAsync(PublishUnpublishDetails details, string locale = null, string apiVersion = null)
{
stack.ThrowIfNotLoggedIn();
ThrowIfUidEmpty();

var service = new PublishUnpublishService(stack.client.serializer, stack, details, $"{resourcePath}/unpublish", "entry", locale);
return stack.client.InvokeAsync<PublishUnpublishService, ContentstackResponse>(service);
return stack.client.InvokeAsync<PublishUnpublishService, ContentstackResponse>(service, apiVersion: apiVersion);
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,18 +83,18 @@ public void AddHanlder(IPipelineHandler handler)
_handler = currentHanler;
}

public System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
ThrowIfDisposed();

return _handler.InvokeAsync<T>(executionContext, addAcceptMediaHeader);
return _handler.InvokeAsync<T>(executionContext, addAcceptMediaHeader, apiVersion);
}

public IResponseContext InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public IResponseContext InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
ThrowIfDisposed();

_handler.InvokeSync(executionContext, addAcceptMediaHeader);
_handler.InvokeSync(executionContext, addAcceptMediaHeader, apiVersion);
return executionContext.ResponseContext;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ internal HttpHandler(HttpClient httpClient)
public ILogManager LogManager { get; set; }
public IPipelineHandler InnerHandler { get; set; }

public async System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public async System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
IHttpRequest httpRequest = null;
try
{
var requestContext = executionContext.RequestContext;

httpRequest = requestContext.service.CreateHttpRequest(_httpClient, requestContext.config, addAcceptMediaHeader);
httpRequest = requestContext.service.CreateHttpRequest(_httpClient, requestContext.config, addAcceptMediaHeader, apiVersion);

if (requestContext.service.HasRequestBody() && requestContext.service.Content != null)
{
Expand All @@ -57,14 +57,14 @@ public async System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext exe
}
}

public void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
IHttpRequest httpRequest = null;
try
{
var requestContext = executionContext.RequestContext;

httpRequest = requestContext.service.CreateHttpRequest(_httpClient, requestContext.config, addAcceptMediaHeader);
httpRequest = requestContext.service.CreateHttpRequest(_httpClient, requestContext.config, addAcceptMediaHeader, apiVersion: apiVersion);

if (requestContext.service.HasRequestBody() && requestContext.service.Content != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ public interface IPipelineHandler
/// </summary>
/// <param name="executionContext"></param>

void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false);
void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null);

/// <summary>
///
/// </summary>
/// <param name="executionContext"></param>
/// <returns></returns>
System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false);
System.Threading.Tasks.Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@ public class PipelineHandler : IPipelineHandler

public IPipelineHandler InnerHandler { get; set; }

public virtual Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public virtual Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
if (InnerHandler != null)
{
return InnerHandler.InvokeAsync<T>(executionContext, addAcceptMediaHeader);
return InnerHandler.InvokeAsync<T>(executionContext, addAcceptMediaHeader, apiVersion);
}
throw new InvalidOperationException("Cannot invoke InnerHandler. InnerHandler is not set.");
}

public virtual void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public virtual void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
if (this.InnerHandler != null)
{
InnerHandler.InvokeSync(executionContext, addAcceptMediaHeader);
InnerHandler.InvokeSync(executionContext, addAcceptMediaHeader, apiVersion);
return;
}
throw new InvalidOperationException("Cannot invoke InnerHandler. InnerHandler is not set.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public RetryHandler(RetryPolicy retryPolicy)
{
this.RetryPolicy = retryPolicy;
}
public override async Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public override async Task<T> InvokeAsync<T>(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
var requestContext = executionContext.RequestContext;
var responseContext = executionContext.ResponseContext;
Expand All @@ -22,7 +22,7 @@ public override async Task<T> InvokeAsync<T>(IExecutionContext executionContext,
{
try
{
var response = await base.InvokeAsync<T>(executionContext, addAcceptMediaHeader);
var response = await base.InvokeAsync<T>(executionContext, addAcceptMediaHeader, apiVersion);
return response;
}
catch (Exception exception)
Expand All @@ -46,15 +46,15 @@ public override async Task<T> InvokeAsync<T>(IExecutionContext executionContext,
throw new ContentstackException("No response was return nor exception was thrown");
}

public override void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false)
public override void InvokeSync(IExecutionContext executionContext, bool addAcceptMediaHeader = false, string apiVersion = null)
{
var requestContext = executionContext.RequestContext;
bool shouldRetry = false;
do
{
try
{
base.InvokeSync(executionContext, addAcceptMediaHeader);
base.InvokeSync(executionContext, addAcceptMediaHeader, apiVersion);
return;
}
catch (Exception exception)
Expand Down
Loading
Loading