mirror of
https://dev.azure.com/effectory/Survey%20Software/_git/Cloud%20Engineering
synced 2026-02-27 10:45:02 +01:00
Add Sonar Client to update permissions and tags in Sonar Projects to new team structure Related work items: #125680
34 lines
1.1 KiB
C#
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 [];
|
|
}
|
|
}
|
|
} |