Files
Watcher/watcher-monitoring/Controllers/MonitoringController.cs
triggermeelmo 24538d8030
Some checks failed
Gitea CI/CD / dotnet-build-and-test (push) Has been cancelled
Gitea CI/CD / Set Tag Name (push) Has been cancelled
Gitea CI/CD / docker-build-and-push (push) Has been cancelled
Gitea CI/CD / Create Tag (push) Has been cancelled
Database Update + Local Storage Start
2025-12-06 12:47:28 +01:00

79 lines
2.1 KiB
C#

using Microsoft.AspNetCore.Mvc;
using watcher_monitoring.Payloads;
using watcher_monitoring.Data;
using watcher_monitoring.Models;
namespace watcher_monitoring.Controllers;
[Route("[controller]")]
public class MonitoringController : Controller
{
private readonly WatcherDbContext _context;
private readonly ILogger<MonitoringController> _logger;
public MonitoringController(WatcherDbContext context, ILogger<MonitoringController> logger)
{
_context = context;
_logger = logger;
}
// Registration Endpoint for watcher-agent
[HttpPost("registration")]
public async Task<IActionResult> Registration([FromBody] RegistrationDto dto)
{
// payload check
if (!ModelState.IsValid)
{
var errors = ModelState.Values
.SelectMany(v => v.Errors)
.Select(e => e.ErrorMessage)
.ToList();
_logger.LogError("Invalid registration payload");
return BadRequest(new { error = "Invalid registration payload", details = errors });
}
return Ok();
}
// Hardware Configuration Endpoint for watcher-agent
[HttpPost("hardware-configuration")]
public async Task<IActionResult> HardwareConfiguration ([FromBody] HardwareDto dto)
{
// payload check
if (!ModelState.IsValid)
{
var errors = ModelState.Values
.SelectMany(v => v.Errors)
.Select(e => e.ErrorMessage)
.ToList();
_logger.LogError("Invalid hardware configuration");
return BadRequest(new { error = "Invalid Hardware Configuration Payload", details = errors });
}
try
{
// Find Server in Database
Server server = await _context.Servers.FindAsync(dto.Id);
// Add Hardware Configuration
}
catch (Exception ex)
{
_logger.LogError(ex.Message);
}
return Ok();
}
// Server-Metrics endpoint for watcher-agent
// Service-Detection endpoint for watcher-agent
// Service-Metrics endpoint for watcher-agent
}