Skip to content

Commit fc32bcf

Browse files
Merge pull request #428 from nofrixion/MOOV-3763-Encrypt-Decrypt-Tribe-Calls
Added support for passing custom headers and media type
2 parents 4ad4f71 + 5044782 commit fc32bcf

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/NoFrixion.MoneyMoov/RestClient/RestApiClient.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public interface IRestApiClient
3333

3434
Task<RestApiResponse<T>> PostAsync<T>(string path, HttpContent content);
3535

36+
Task<RestApiResponse<T>> PostAsync<T>(string path, HttpContent content, Dictionary<string, string> headers,
37+
MediaTypeWithQualityHeaderValue acceptHeader);
38+
3639
Task<RestApiResponse> PostAsync(string path, string accessToken, HttpContent content);
3740

3841
Task<RestApiResponse<T>> PostAsync<T>(string path, string accessToken, HttpContent content);
@@ -104,6 +107,10 @@ public Task<RestApiResponse> PostAsync(string path, HttpContent content)
104107
public Task<RestApiResponse<T>> PostAsync<T>(string path, HttpContent content)
105108
=> ExecAsync<T>(BuildRequest(HttpMethod.Post, path, string.Empty, content));
106109

110+
public Task<RestApiResponse<T>> PostAsync<T>(string path, HttpContent content, Dictionary<string, string> headers,
111+
MediaTypeWithQualityHeaderValue acceptHeader)
112+
=> ExecAsync<T>(BuildRequest(HttpMethod.Post, path, string.Empty, content, null, headers, acceptHeader));
113+
107114
public Task<RestApiResponse> PostAsync(string path, string accessToken, HttpContent content)
108115
=> ExecAsync(BuildRequest(HttpMethod.Post, path, accessToken, content));
109116

@@ -151,11 +158,13 @@ private HttpRequestMessage BuildRequest(
151158
string path,
152159
string accessToken,
153160
Option<HttpContent> httpContent,
154-
string? rowVersion = null)
161+
string? rowVersion = null,
162+
Dictionary<string, string>? headers = null,
163+
MediaTypeWithQualityHeaderValue? acceptHeader = null)
155164
{
156165
HttpRequestMessage request = new HttpRequestMessage(method, path);
157166

158-
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
167+
request.Headers.Accept.Add(acceptHeader ?? new MediaTypeWithQualityHeaderValue("application/json"));
159168

160169
if (!string.IsNullOrEmpty(accessToken))
161170
{
@@ -166,6 +175,14 @@ private HttpRequestMessage BuildRequest(
166175
{
167176
request.Headers.TryAddWithoutValidation("If-Match", rowVersion);
168177
}
178+
179+
if (headers != null)
180+
{
181+
foreach (var header in headers)
182+
{
183+
request.Headers.TryAddWithoutValidation(header.Key, header.Value);
184+
}
185+
}
169186

170187
if(httpContent.IsSome)
171188
{

0 commit comments

Comments
 (0)