40 lines
1.3 KiB
C#
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();
|