operations-dal/src/Operations.DAL.Host/Program.cs
2026-03-09 11:57:46 -06:00

34 lines
1.1 KiB
C#

using Operations.DAL.Contracts;
using Operations.DAL.Repositories;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHealthChecks();
builder.Services.AddSingleton<IOperationsConfigRepository, InMemoryOperationsConfigRepository>();
var app = builder.Build();
app.MapGet("/internal/operations-dal/config", async (
string locationId,
DateTime? effectiveAtUtc,
IOperationsConfigRepository repository,
CancellationToken ct) =>
{
var effectiveAt = effectiveAtUtc ?? DateTime.UtcNow;
var record = await repository.GetEffectiveAsync(locationId, effectiveAt, ct);
return record is null ? Results.NotFound() : Results.Ok(record);
});
app.MapPost("/internal/operations-dal/config", async (
OperationsConfigRecord record,
IOperationsConfigRepository repository,
CancellationToken ct) =>
{
await repository.UpsertAsync(record, ct);
return Results.Accepted($"/internal/operations-dal/config?locationId={Uri.EscapeDataString(record.LocationId)}", record);
});
app.MapHealthChecks("/health");
app.MapHealthChecks("/healthz");
app.Run();