From 8727aff861cfee42397b02532e7e2afce769b028 Mon Sep 17 00:00:00 2001 From: triggermeelmo Date: Fri, 9 Jan 2026 12:41:32 +0100 Subject: [PATCH] AddServer Call for Development --- .../Controllers/ApiController.cs | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/watcher-monitoring/Controllers/ApiController.cs b/watcher-monitoring/Controllers/ApiController.cs index 2e2d191..fd5a08b 100644 --- a/watcher-monitoring/Controllers/ApiController.cs +++ b/watcher-monitoring/Controllers/ApiController.cs @@ -37,6 +37,61 @@ public class APIController : Controller return Ok(servers); } + // DEVELOPMENT ONLY + [HttpPost("add-server")] + public async Task AddServer([FromBody] Server serverDto) + { + // payload check + if (!ModelState.IsValid) + { + var errors = ModelState.Values + .SelectMany(v => v.Errors) + .Select(e => e.ErrorMessage) + .ToList(); + + _logger.LogError("Invalid server payload"); + return BadRequest(new { error = "Invalid server payload", details = errors }); + } + + try + { + // Check if server with same IP already exists + var existingServer = await _context.Servers + .FirstOrDefaultAsync(s => s.IPAddress == serverDto.IPAddress); + + if (existingServer != null) + { + _logger.LogWarning("Server mit IP-Adresse {ip} existiert bereits", serverDto.IPAddress); + return BadRequest(new { error = "Server mit dieser IP-Adresse existiert bereits" }); + } + + Server server = new Server + { + Name = serverDto.Name, + IPAddress = serverDto.IPAddress, + CpuType = serverDto.CpuType, + CpuCores = serverDto.CpuCores, + GpuType = serverDto.GpuType, + RamSize = serverDto.RamSize, + DiskSpace = serverDto.DiskSpace, + IsOnline = serverDto.IsOnline, + IsVerified = serverDto.IsVerified + }; + + _context.Servers.Add(server); + await _context.SaveChangesAsync(); + + _logger.LogInformation("Server '{name}' mit IP {ip} erfolgreich hinzugefügt", server.Name, server.IPAddress); + + return Ok(new { message = "Server erfolgreich hinzugefügt", serverId = server.Id }); + } + catch (Exception ex) + { + _logger.LogError(ex, "Fehler beim Hinzufügen des Servers"); + return BadRequest(new { error = "Fehler beim Hinzufügen des Servers", details = ex.Message }); + } + } + [HttpDelete("delete-server/{id}")] public async Task DeleteServer(int id) {