OFDL: Enabled setting HttpMethod and Body

This commit is contained in:
Casper Sparre 2026-02-19 20:00:31 +01:00
parent 8eaa14ae03
commit 8d5cc39722

View File

@ -2755,11 +2755,11 @@ public class ApiService(IAuthService authService, IConfigService configService,
protected async Task<string?> BuildHeaderAndExecuteRequests(Dictionary<string, string> getParams, string endpoint, protected async Task<string?> BuildHeaderAndExecuteRequests(Dictionary<string, string> getParams, string endpoint,
HttpClient client) HttpClient client, HttpMethod? method = null, object? reqBody = null)
{ {
Log.Debug("Calling BuildHeaderAndExecuteRequests"); Log.Debug("Calling BuildHeaderAndExecuteRequests");
HttpRequestMessage request = await BuildHttpRequestMessage(getParams, endpoint, method); HttpRequestMessage request = await BuildHttpRequestMessage(getParams, endpoint, method, reqBody);
using HttpResponseMessage response = await client.SendAsync(request); using HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
string body = await response.Content.ReadAsStringAsync(); string body = await response.Content.ReadAsStringAsync();
@ -2771,15 +2771,21 @@ public class ApiService(IAuthService authService, IConfigService configService,
protected Task<HttpRequestMessage> BuildHttpRequestMessage(Dictionary<string, string> getParams, protected Task<HttpRequestMessage> BuildHttpRequestMessage(Dictionary<string, string> getParams,
string endpoint) string endpoint, HttpMethod? method = null, object? reqBody = null)
{ {
Log.Debug("Calling BuildHttpRequestMessage"); Log.Debug("Calling BuildHttpRequestMessage");
string queryParams = "?" + string.Join("&", getParams.Select(kvp => $"{kvp.Key}={kvp.Value}")); string queryParams = "";
if (getParams.Count != 0)
queryParams = "?" + string.Join("&", getParams.Select(kvp => $"{kvp.Key}={kvp.Value}"));
Dictionary<string, string> headers = GetDynamicHeaders($"/api2/v2{endpoint}", queryParams); Dictionary<string, string> headers = GetDynamicHeaders($"/api2/v2{endpoint}", queryParams);
HttpRequestMessage request = new(HttpMethod.Get, $"{Constants.ApiUrl}{endpoint}{queryParams}"); HttpRequestMessage request = new(method ?? HttpMethod.Get, $"{Constants.ApiUrl}{endpoint}{queryParams}");
if ((method == HttpMethod.Post || method == HttpMethod.Put || method == HttpMethod.Patch) && reqBody != null)
request.Content = new StringContent(JsonConvert.SerializeObject(reqBody, s_mJsonSerializerSettings), Encoding.UTF8, "application/json");
Log.Debug($"Full request URL: {Constants.ApiUrl}{endpoint}{queryParams}"); Log.Debug($"Full request URL: {Constants.ApiUrl}{endpoint}{queryParams}");