Initial import
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user