using BonchCalendar.Services; using Microsoft.Extensions.Diagnostics.HealthChecks; namespace BonchCalendar.Health; /// /// Healthcheck service for sut.ru API. /// public class ApiHealthCheck(IssueTrackingService trackingService) : IHealthCheck { public async Task CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default ) { Dictionary report = trackingService.GetReport(); // We deem service "unhealthy" if any of the last requests to the API were unsuccessful. if (report.Count > 0) return HealthCheckResult.Unhealthy( description: "We're having issues with fetching data from the timetable website.", data: report ); return HealthCheckResult.Healthy(); } }