Merge pull request 'feature/Server-Heartbeat' (#9) from feature/Server-Heartbeat into development

Reviewed-on: daniel-hbn/Watcher#9
This commit is contained in:
2025-06-15 15:41:30 +00:00

View File

@@ -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<IActionResult> Receive([FromForm] int serverId)
public async Task<IActionResult> 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.");
}
}