Files
minattest/backend/src/MinAttest.Api/Features/Health/Health.cs
T
Stein Helge Riise ede31fbb7e Initial import
2025-11-17 08:32:46 +01:00

28 lines
873 B
C#

namespace MinAttest.Api.Features.Health;
using MinAttest.Infrastructure.Data;
using Microsoft.EntityFrameworkCore;
public static class Health
{
public static RouteGroupBuilder MapHealth(this RouteGroupBuilder group)
{
group.MapGet("/health", GetHealth)
.WithName("Health")
.WithOpenApi();
return group;
}
private static async Task<IResult> GetHealth(AppDbContext db, CancellationToken ct)
{
var canConnect = await db.Database.CanConnectAsync(ct);
var payload = new
{
status = canConnect ? "OK" : "DEGRADED",
database = canConnect ? "Up" : "Down",
time = DateTimeOffset.UtcNow
};
return canConnect ? Results.Ok(payload) : Results.Json(payload, statusCode: StatusCodes.Status503ServiceUnavailable);
}
}