using Ablera.Serdica.Authentication.Models;
using Ablera.Serdica.Common.Tools.Extensions;
using Microsoft.AspNetCore.Http;
using System.Text.Json;
using System.Threading.Tasks;

namespace Ablera.Serdica.Authentication.Extensions;

public static class ProxyResultExtension
{
    public static async Task ReturnHttpRessponse(this ProxyResult proxyResult, HttpResponse httpResponse)
    {
        if (httpResponse.HasStarted) return;
        httpResponse.StatusCode = (int)proxyResult.StatusCode;
        httpResponse.ContentType = "application/json";
        await JsonSerializer.SerializeAsync(httpResponse.Body, proxyResult, proxyResult.GetType(), GlobalJsonSerializerOptions.JsonSerializerOptions);
    }
}
