Files
Cloud-20Engineering/ConsoleApps/AzureRestApi/AzureRestApi/Repositories/AzureBaseRepository.cs
Johannes Oenema Effectory 91980817e0 Merged PR 63702: Add Sonar Client to update permissions and tags in Sonar Projects to new team structure
Add Sonar Client to update permissions and tags in Sonar Projects to new team structure

Related work items: #125680
2025-11-05 15:18:52 +00:00

34 lines
1.1 KiB
C#

using AzureRestApi.Models.Api;
using System.Net.Http.Headers;
using System.Text.Json;
namespace AzureRestApi.Repositories;
public abstract class AzureBaseRepository<T>(HttpClient httpClient, AccessTokenRepository accessTokenRepository)
{
protected async Task<List<T>> GetAllByUri(Uri uri)
{
var accessToken = await accessTokenRepository.GetAccessToken();
HttpRequestMessage request = new(HttpMethod.Get, uri);
request.Headers.Accept.Clear();
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = await httpClient.SendAsync(request).ConfigureAwait(false);
try
{
response.EnsureSuccessStatusCode();
var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
var result = JsonSerializer.Deserialize<ApiResponse<T>>(responseString)?.value;
return result ?? [];
}
catch
{
return [];
}
}
}