Files
HomeMonitor/Weather/SerialReader/Controllers/HealthController.cs

26 lines
736 B
C#

using Microsoft.AspNetCore.Mvc;
using System;
namespace ChrisKaczor.HomeMonitor.Weather.SerialReader.Controllers;
[Route("[controller]")]
[ApiController]
public class HealthController : ControllerBase
{
private readonly TimeSpan _checkTimeSpan = TimeSpan.FromSeconds(5);
[HttpGet("ready")]
public IActionResult Ready()
{
return SerialReader.BoardStarted ? Ok() : Conflict();
}
[HttpGet("health")]
public IActionResult Health()
{
var lastReading = SerialReader.LastReading;
var timeSinceLastReading = DateTimeOffset.UtcNow - lastReading;
return SerialReader.BoardStarted && timeSinceLastReading <= _checkTimeSpan ? Ok(lastReading) : BadRequest(lastReading);
}
}