diff --git a/Watcher/Controllers/HeartbeatController.cs b/Watcher/Controllers/HeartbeatController.cs index 0a362e3..10015a9 100644 --- a/Watcher/Controllers/HeartbeatController.cs +++ b/Watcher/Controllers/HeartbeatController.cs @@ -8,6 +8,11 @@ using Watcher.Data; using Watcher.Models; using Watcher.ViewModels; +public class HeartbeatDto +{ + public string? IpAddress { get; set; } +} + [ApiController] [Route("[controller]")] public class HeartbeatController : Controller @@ -21,23 +26,23 @@ public class HeartbeatController : Controller } [HttpPost("receive")] - public async Task Receive([FromForm] int serverId) + public async Task Receive([FromBody] HeartbeatDto dto) { - var server = await _context.Servers.FirstOrDefaultAsync(s => s.Id == serverId); + if (string.IsNullOrWhiteSpace(dto.IpAddress)) + { + return BadRequest("Missing IP address."); + } + + var server = await _context.Servers + .FirstOrDefaultAsync(s => s.IPAddress == dto.IpAddress); - // Je nachdem, ob dier Datenbankeintrag für einen neuen Server vorher oder nacher passiert, ist das hier überflüssig if (server != null) { server.LastSeen = DateTime.UtcNow; - await _context.SaveChangesAsync(); return Ok(); - } - else - { - return BadRequest(); - } - + + return NotFound("No matching server found."); } }