AddServer Call for Development

This commit is contained in:
2026-01-09 12:41:32 +01:00
parent 301d2309c9
commit 8727aff861

View File

@@ -37,6 +37,61 @@ public class APIController : Controller
return Ok(servers); return Ok(servers);
} }
// DEVELOPMENT ONLY
[HttpPost("add-server")]
public async Task<IActionResult> 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}")] [HttpDelete("delete-server/{id}")]
public async Task<IActionResult> DeleteServer(int id) public async Task<IActionResult> DeleteServer(int id)
{ {