AddServer Call for Development
This commit is contained in:
@@ -37,6 +37,61 @@ public class APIController : Controller
|
||||
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}")]
|
||||
public async Task<IActionResult> DeleteServer(int id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user