AddServer Call for Development
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user