vbytes-lan-registration/src/Auth/AuthAPI/Program.cs
2026-02-19 10:54:32 +01:00

40 lines
1.3 KiB
C#

using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.Mvc;
using AuthAPI;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHttpClient();
builder.Services.Configure<AuthSettings>(
builder.Configuration.GetSection("EnvironmentVariables"));
builder.Services.AddScoped<MemberValidationService>();
builder.Services.ConfigureHttpJsonOptions(options =>
{
options.SerializerOptions.AllowTrailingCommas = true;
});
var app = builder.Build();
app.MapPost("/validate", async (
[FromBody] Request validationRequest,
HttpClient httpClient,
MemberValidationService memberService,
IOptions<AuthSettings> settings) =>
{
var request = memberService.GetRequestWithApiKey(validationRequest);
if (request.IsFailure)
return Results.BadRequest(request.Failure);
var response = await httpClient.PostAsJsonAsync(
settings.Value.ApiUrl,
request.Success);
if (!response.IsSuccessStatusCode)
return Results.StatusCode((int)response.StatusCode);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine($"[DEBUG] Sverok response: {content}");
return content.Contains("\"member_found\":true") ? Results.Ok() : Results.NotFound();
})
.WithName("ValidateMember");
app.Run();