Skip to content

Commit

Permalink
SP-13399: Fix duplication keys in response headers (#97)
Browse files Browse the repository at this point in the history
* SP-13399: Fix duplication keys in response headers

* update

* update

* SP-13399: Fix duplication keys in response headers

* SP-13399: Fix duplication keys in response headers

---------

Co-authored-by: Kiryl Kovaliov <[email protected]>
  • Loading branch information
GubinAlexander and KirylKovaliov authored Feb 2, 2024
1 parent 720bb51 commit 985e1ce
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 39 deletions.
64 changes: 32 additions & 32 deletions src/Regula.DocumentReader.WebClient/Api/DefaultApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public interface IDefaultApi : IApiAccessor
/// <exception cref="Regula.DocumentReader.WebClient.Client.ApiException">Thrown when fails to make API call</exception>
/// <param name="xRequestID"> (optional)</param>
/// <returns>DeviceInfo</returns>
DeviceInfo Ping (Dictionary<String, String> headers, string xRequestID = default(string));
DeviceInfo Ping(Dictionary<String, String> headers, string xRequestID = default(string));

/// <summary>
/// Server health check
Expand All @@ -45,7 +45,7 @@ public interface IDefaultApi : IApiAccessor
/// <exception cref="Regula.DocumentReader.WebClient.Client.ApiException">Thrown when fails to make API call</exception>
/// <param name="xRequestID"> (optional)</param>
/// <returns>ApiResponse of DeviceInfo</returns>
ApiResponse<DeviceInfo> PingWithHttpInfo (Dictionary<String, String> headers, string xRequestID = default(string));
ApiResponse<DeviceInfo> PingWithHttpInfo(Dictionary<String, String> headers, string xRequestID = default(string));
#endregion Synchronous Operations
#region Asynchronous Operations
/// <summary>
Expand All @@ -58,7 +58,7 @@ public interface IDefaultApi : IApiAccessor
/// <param name="xRequestID"> (optional)</param>
/// <param name="cancellationToken">Cancellation Token to cancel request (optional) </param>
/// <returns>Task of DeviceInfo</returns>
System.Threading.Tasks.Task<DeviceInfo> PingAsync (string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken));
System.Threading.Tasks.Task<DeviceInfo> PingAsync(string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken));

/// <summary>
/// Server health check
Expand All @@ -70,7 +70,7 @@ public interface IDefaultApi : IApiAccessor
/// <param name="xRequestID"> (optional)</param>
/// <param name="cancellationToken">Cancellation Token to cancel request (optional) </param>
/// <returns>Task of ApiResponse (DeviceInfo)</returns>
System.Threading.Tasks.Task<ApiResponse<DeviceInfo>> PingWithHttpInfoAsync (string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken));
System.Threading.Tasks.Task<ApiResponse<DeviceInfo>> PingWithHttpInfoAsync(string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken));
#endregion Asynchronous Operations
}

Expand Down Expand Up @@ -142,7 +142,7 @@ public void SetBasePath(String basePath)
/// Gets or sets the configuration object
/// </summary>
/// <value>An instance of the Configuration</value>
public Regula.DocumentReader.WebClient.Client.Configuration Configuration {get; set;}
public Regula.DocumentReader.WebClient.Client.Configuration Configuration { get; set; }

/// <summary>
/// Provides a factory method hook for the creation of exceptions.
Expand Down Expand Up @@ -188,19 +188,26 @@ public void AddDefaultHeader(string key, string value)
/// <exception cref="Regula.DocumentReader.WebClient.Client.ApiException">Thrown when fails to make API call</exception>
/// <param name="xRequestID"> (optional)</param>
/// <returns>DeviceInfo</returns>
public DeviceInfo Ping (Dictionary<String, String> headers, string xRequestID = default(string))
public DeviceInfo Ping(Dictionary<String, String> headers, string xRequestID = default(string))
{
ApiResponse<DeviceInfo> localVarResponse = PingWithHttpInfo(headers, xRequestID);
return localVarResponse.Data;
ApiResponse<DeviceInfo> localVarResponse = PingWithHttpInfo(headers, xRequestID);
return localVarResponse.Data;
}

public ApiResponse<DeviceInfo> SaveResponse(RestResponse response)
{
int localVarStatusCode = (int)response.StatusCode;
return new ApiResponse<DeviceInfo>(localVarStatusCode,
response.Headers.ToDictionarySafe(x => x.Name, x => string.Join(",", x.Value)),
(DeviceInfo)this.Configuration.ApiClient.Deserialize(response, typeof(DeviceInfo)));
}
/// <summary>
/// Server health check
/// </summary>
/// <exception cref="Regula.DocumentReader.WebClient.Client.ApiException">Thrown when fails to make API call</exception>
/// <param name="xRequestID"> (optional)</param>
/// <returns>ApiResponse of DeviceInfo</returns>
public ApiResponse<DeviceInfo> PingWithHttpInfo (Dictionary<String, String> headers, string xRequestID = default(string))
public ApiResponse<DeviceInfo> PingWithHttpInfo(Dictionary<String, String> headers, string xRequestID = default(string))
{

var localVarPath = "/api/ping";
Expand All @@ -222,40 +229,36 @@ public void AddDefaultHeader(string key, string value)
};
String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);
if (localVarHttpHeaderAccept != null)
localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);

if (xRequestID != null) localVarHeaderParams.Add("X-RequestID", this.Configuration.ApiClient.ParameterToString(xRequestID)); // header parameter
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept;

if (xRequestID != null)
localVarHeaderParams["X-RequestID"] = this.Configuration.ApiClient.ParameterToString(xRequestID); // header parameter

// make the HTTP request
RestResponse localVarResponse = (RestResponse) this.Configuration.ApiClient.CallApi(localVarPath,
RestResponse localVarResponse = (RestResponse)this.Configuration.ApiClient.CallApi(localVarPath,
Method.Get, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
localVarPathParams, localVarHttpContentType);

int localVarStatusCode = (int) localVarResponse.StatusCode;
int localVarStatusCode = (int)localVarResponse.StatusCode;

if (ExceptionFactory != null)
{
Exception exception = ExceptionFactory("Ping", localVarResponse);
if (exception != null) throw exception;
}

return new ApiResponse<DeviceInfo>(localVarStatusCode,
localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)),
(DeviceInfo) this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(DeviceInfo)));
return SaveResponse(localVarResponse);
}

/// <summary>
/// Server health check
/// </summary>
/// <exception cref="Regula.DocumentReader.WebClient.Client.ApiException">Thrown when fails to make API call</exception>
/// <param name="xRequestID"> (optional)</param>
/// <param name="cancellationToken">Cancellation Token to cancel request (optional) </param>
/// <returns>Task of DeviceInfo</returns>
public async System.Threading.Tasks.Task<DeviceInfo> PingAsync (string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken))
public async System.Threading.Tasks.Task<DeviceInfo> PingAsync(string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken))
{
ApiResponse<DeviceInfo> localVarResponse = await PingWithHttpInfoAsync(xRequestID, cancellationToken);
return localVarResponse.Data;
ApiResponse<DeviceInfo> localVarResponse = await PingWithHttpInfoAsync(xRequestID, cancellationToken);
return localVarResponse.Data;

}

Expand All @@ -266,7 +269,7 @@ public void AddDefaultHeader(string key, string value)
/// <param name="xRequestID"> (optional)</param>
/// <param name="cancellationToken">Cancellation Token to cancel request (optional) </param>
/// <returns>Task of ApiResponse (DeviceInfo)</returns>
public async System.Threading.Tasks.Task<ApiResponse<DeviceInfo>> PingWithHttpInfoAsync (string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken))
public async System.Threading.Tasks.Task<ApiResponse<DeviceInfo>> PingWithHttpInfoAsync(string xRequestID = default(string), CancellationToken cancellationToken = default(CancellationToken))
{

var localVarPath = "/api/ping";
Expand All @@ -288,28 +291,25 @@ public void AddDefaultHeader(string key, string value)
};
String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);
if (localVarHttpHeaderAccept != null)
localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept;

if (xRequestID != null) localVarHeaderParams.Add("X-RequestID", this.Configuration.ApiClient.ParameterToString(xRequestID)); // header parameter
if (xRequestID != null) localVarHeaderParams["X-RequestID"] = this.Configuration.ApiClient.ParameterToString(xRequestID); // header parameter


// make the HTTP request
RestResponse localVarResponse = (RestResponse) await this.Configuration.ApiClient.CallApiAsync(localVarPath,
RestResponse localVarResponse = (RestResponse)await this.Configuration.ApiClient.CallApiAsync(localVarPath,
Method.Get, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
localVarPathParams, localVarHttpContentType, cancellationToken);

int localVarStatusCode = (int) localVarResponse.StatusCode;
int localVarStatusCode = (int)localVarResponse.StatusCode;

if (ExceptionFactory != null)
{
Exception exception = ExceptionFactory("Ping", localVarResponse);
if (exception != null) throw exception;
}

return new ApiResponse<DeviceInfo>(localVarStatusCode,
localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)),
(DeviceInfo) this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(DeviceInfo)));
return SaveResponse(localVarResponse);
}

}
}
}
14 changes: 8 additions & 6 deletions src/Regula.DocumentReader.WebClient/Api/ProcessApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ public void AddDefaultHeader(string key, string value)
}

return new ApiResponse<ProcessResponse>(localVarStatusCode,
localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)),
localVarResponse.Headers.ToDictionarySafe(x => x.Name, x => string.Join(",", x.Value)),
(ProcessResponse) this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(ProcessResponse)));
}

Expand Down Expand Up @@ -295,7 +295,7 @@ public void AddDefaultHeader(string key, string value)
var localVarPath = "/api/process";
var localVarPathParams = new Dictionary<String, String>();
var localVarQueryParams = new List<KeyValuePair<String, String>>();
var localVarHeaderParams = this.Configuration.DefaultHeader.Union(headers).ToDictionary(k => k.Key, v => v.Value);
var localVarHeaderParams = this.Configuration.DefaultHeader.Union(headers).ToDictionarySafe(k => k.Key, v => v.Value);
var localVarFormParams = new Dictionary<String, String>();
var localVarFileParams = new Dictionary<String, FileParameter>();
Object localVarPostBody = null;
Expand All @@ -312,10 +312,12 @@ public void AddDefaultHeader(string key, string value)
};
String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);
if (localVarHttpHeaderAccept != null)
localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept;

if (xRequestID != null) localVarHeaderParams.Add("X-RequestID", this.Configuration.ApiClient.ParameterToString(xRequestID)); // header parameter
if (processRequest != null && processRequest.GetType() != typeof(byte[]))
if (xRequestID != null)
localVarHeaderParams["X-RequestID"] = this.Configuration.ApiClient.ParameterToString(xRequestID); // header parameter

if (processRequest.GetType() != typeof(byte[]))
{
localVarPostBody = this.Configuration.ApiClient.Serialize(processRequest); // http body (model) parameter
}
Expand All @@ -339,7 +341,7 @@ public void AddDefaultHeader(string key, string value)
}

return new ApiResponse<ProcessResponse>(localVarStatusCode,
localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)),
localVarResponse.Headers.ToDictionarySafe(x => x.Name, x => string.Join(",", x.Value)),
(ProcessResponse) this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(ProcessResponse)));
}

Expand Down
2 changes: 1 addition & 1 deletion src/Regula.DocumentReader.WebClient/Client/ApiClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public ApiClient(Configuration config)
ThrowOnAnyError = true,
MaxTimeout = Configuration.Timeout
};
RestClient = new RestClient(Configuration.BasePath);
RestClient = new RestClient(options);
}

/// <summary>
Expand Down
21 changes: 21 additions & 0 deletions src/Regula.DocumentReader.WebClient/Extensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;

namespace Regula.DocumentReader.WebClient
{
public static class CollectionExtensions
{
public static Dictionary<TKey, TElement> ToDictionarySafe<TSource, TKey, TElement>(this IEnumerable<TSource> collection,
Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector)
where TKey : notnull
{
var result = new Dictionary<TKey, TElement>();
foreach (var value in collection)
{
result[keySelector(value)] = elementSelector(value);
}
return result;
}
}
}

0 comments on commit 985e1ce

Please sign in to comment.