Merge pull request 'feature/Server-Heartbeat' (#9) from feature/Server-Heartbeat into development
Reviewed-on: daniel-hbn/Watcher#9
This commit is contained in:
@@ -8,6 +8,11 @@ using Watcher.Data;
|
|||||||
using Watcher.Models;
|
using Watcher.Models;
|
||||||
using Watcher.ViewModels;
|
using Watcher.ViewModels;
|
||||||
|
|
||||||
|
public class HeartbeatDto
|
||||||
|
{
|
||||||
|
public string? IpAddress { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]")]
|
[Route("[controller]")]
|
||||||
public class HeartbeatController : Controller
|
public class HeartbeatController : Controller
|
||||||
@@ -21,23 +26,23 @@ public class HeartbeatController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("receive")]
|
[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)
|
if (server != null)
|
||||||
{
|
{
|
||||||
server.LastSeen = DateTime.UtcNow;
|
server.LastSeen = DateTime.UtcNow;
|
||||||
|
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return BadRequest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return NotFound("No matching server found.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user