Skip to content

Commit addba96

Browse files
CopilotMikeAlhayek
andcommitted
Replace global HttpClient instance with per-method HttpClient creation pattern
Co-authored-by: MikeAlhayek <24724371+MikeAlhayek@users.noreply.github.com>
1 parent 0548670 commit addba96

1 file changed

Lines changed: 35 additions & 13 deletions

File tree

src/PureCloud.Client/Apis/ObjectsApi.cs

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ namespace PureCloud.Client.Apis;
1111
/// <inheritdoc />
1212
public sealed class ObjectsApi : IObjectsApi
1313
{
14-
private readonly HttpClient _httpClient;
14+
private readonly IHttpClientFactory _httpClientFactory;
1515
private readonly PureCloudJsonSerializerOptions _options;
1616

1717
public ObjectsApi(IHttpClientFactory httpClientFactory, IOptions<PureCloudJsonSerializerOptions> options)
1818
{
19-
_httpClient = httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
19+
_httpClientFactory = httpClientFactory;
2020
_options = options.Value;
2121
}
2222

@@ -34,7 +34,9 @@ public async Task<AuthzDivision> GetAuthorizationDivisionAsync(string divisionId
3434

3535
var uri = UriHelper.GetUri($"api/v2/authorization/divisions/{Uri.EscapeDataString(divisionId)}", parameters);
3636

37-
var response = await _httpClient.GetAsync(uri, cancellationToken);
37+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
38+
39+
var response = await client.GetAsync(uri, cancellationToken);
3840

3941
response.EnsureSuccessStatusCode();
4042

@@ -99,7 +101,9 @@ public async Task<AuthzDivisionEntityListing> GetAuthorizationDivisionsAsync(int
99101

100102
var uri = UriHelper.GetUri("api/v2/authorization/divisions", parameters);
101103

102-
var response = await _httpClient.GetAsync(uri, cancellationToken);
104+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
105+
106+
var response = await client.GetAsync(uri, cancellationToken);
103107

104108
response.EnsureSuccessStatusCode();
105109

@@ -113,7 +117,9 @@ public async Task<AuthzDivision> CreateAuthorizationDivisionAsync(AuthzDivision
113117

114118
var uri = "api/v2/authorization/divisions";
115119

116-
var response = await _httpClient.PostAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
120+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
121+
122+
var response = await client.PostAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
117123

118124
response.EnsureSuccessStatusCode();
119125

@@ -129,7 +135,9 @@ public async Task<AuthzDivision> UpdateAuthorizationDivisionAsync(string divisio
129135

130136
var uri = $"api/v2/authorization/divisions/{Uri.EscapeDataString(divisionId)}";
131137

132-
var response = await _httpClient.PutAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
138+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
139+
140+
var response = await client.PutAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
133141

134142
response.EnsureSuccessStatusCode();
135143

@@ -150,7 +158,9 @@ public async Task DeleteAuthorizationDivisionAsync(string divisionId, bool? forc
150158

151159
var uri = UriHelper.GetUri($"api/v2/authorization/divisions/{Uri.EscapeDataString(divisionId)}", parameters);
152160

153-
var response = await _httpClient.DeleteAsync(uri, cancellationToken);
161+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
162+
163+
var response = await client.DeleteAsync(uri, cancellationToken);
154164

155165
response.EnsureSuccessStatusCode();
156166
}
@@ -172,7 +182,9 @@ public async Task<AuthzDivisionEntityListing> GetAuthorizationDivisionsDeletedAs
172182

173183
var uri = UriHelper.GetUri("api/v2/authorization/divisions/deleted", parameters);
174184

175-
var response = await _httpClient.GetAsync(uri, cancellationToken);
185+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
186+
187+
var response = await client.GetAsync(uri, cancellationToken);
176188

177189
response.EnsureSuccessStatusCode();
178190

@@ -182,7 +194,9 @@ public async Task<AuthzDivisionEntityListing> GetAuthorizationDivisionsDeletedAs
182194
/// <inheritdoc />
183195
public async Task<AuthzDivision> GetAuthorizationDivisionsHomeAsync(CancellationToken cancellationToken = default)
184196
{
185-
var response = await _httpClient.GetAsync("api/v2/authorization/divisions/home", cancellationToken);
197+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
198+
199+
var response = await client.GetAsync("api/v2/authorization/divisions/home", cancellationToken);
186200

187201
response.EnsureSuccessStatusCode();
188202

@@ -192,7 +206,9 @@ public async Task<AuthzDivision> GetAuthorizationDivisionsHomeAsync(Cancellation
192206
/// <inheritdoc />
193207
public async Task<int?> GetAuthorizationDivisionsLimitAsync(CancellationToken cancellationToken = default)
194208
{
195-
var response = await _httpClient.GetAsync("api/v2/authorization/divisions/limit", cancellationToken);
209+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
210+
211+
var response = await client.GetAsync("api/v2/authorization/divisions/limit", cancellationToken);
196212

197213
response.EnsureSuccessStatusCode();
198214

@@ -208,7 +224,9 @@ public async Task CreateAuthorizationDivisionObjectsAsync(string divisionId, str
208224

209225
var uri = $"api/v2/authorization/divisions/{Uri.EscapeDataString(divisionId)}/objects/{Uri.EscapeDataString(objectType)}";
210226

211-
var response = await _httpClient.PostAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
227+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
228+
229+
var response = await client.PostAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
212230

213231
response.EnsureSuccessStatusCode();
214232
}
@@ -248,7 +266,9 @@ public async Task<AuthzDivisionCursorListing> GetAuthorizationDivisionsQueryAsyn
248266

249267
var uri = UriHelper.GetUri("api/v2/authorization/divisions/query", parameters);
250268

251-
var response = await _httpClient.GetAsync(uri, cancellationToken);
269+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
270+
271+
var response = await client.GetAsync(uri, cancellationToken);
252272

253273
response.EnsureSuccessStatusCode();
254274

@@ -264,7 +284,9 @@ public async Task<AuthzDivision> PostAuthorizationDivisionRestoreAsync(string di
264284

265285
var uri = $"api/v2/authorization/divisions/{Uri.EscapeDataString(divisionId)}/restore";
266286

267-
var response = await _httpClient.PostAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
287+
var client = _httpClientFactory.CreateClient(PureCloudConstants.PureCloudClientName);
288+
289+
var response = await client.PostAsJsonAsync(uri, body, _options.JsonSerializerOptions, cancellationToken);
268290

269291
response.EnsureSuccessStatusCode();
270292

0 commit comments

Comments
 (0)