using System.Net.Http;
using Downloader;

namespace PCL.Network;

internal static class DownloadRequestFactory
{
    internal static RequestConfiguration Create(string url, bool useBrowserUserAgent, string customUserAgent = "")
    {
        var request = new HttpRequestMessage(HttpMethod.Get, url);
        RequestSigning.SecretHeadersSign(url, ref request, useBrowserUserAgent, customUserAgent);
        try
        {
            var configuration = new RequestConfiguration();
            if (request.Headers.UserAgent.Count > 0)
                configuration.UserAgent = request.Headers.UserAgent.ToString();
            foreach (var header in request.Headers)
                if (!header.Key.Equals("User-Agent", StringComparison.OrdinalIgnoreCase))
                    configuration.Headers.Add($"{header.Key}: {string.Join(", ", header.Value)}");
            return configuration;
        }
        finally
        {
            request.Dispose();
        }
    }
}
