30 lines
844 B
C#
30 lines
844 B
C#
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace HaCompanion.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("uptime")]
|
|
public class UptimeMonitorController : ControllerBase
|
|
{
|
|
private readonly ILogger<UptimeMonitorController> _logger;
|
|
private readonly UptimePollerService _uptimeService;
|
|
|
|
public UptimeMonitorController(ILogger<UptimeMonitorController> logger, IServiceProvider services)
|
|
{
|
|
_logger = logger;
|
|
_uptimeService = services.GetServices<IHostedService>().OfType<UptimePollerService>().Single();
|
|
}
|
|
|
|
[HttpGet]
|
|
public IDictionary<string, UptimeStatistics> Get()
|
|
{
|
|
var resultDict = new Dictionary<string, UptimeStatistics>();
|
|
|
|
foreach (var stats in _uptimeService.GetUptimeStatistics())
|
|
{
|
|
resultDict.Add(stats.Website, stats);
|
|
}
|
|
|
|
return resultDict;
|
|
}
|
|
} |