feat: Implement API for managing network connections, device types, and uploads
This commit is contained in:
@@ -1,2 +1,103 @@
|
||||
<?php
|
||||
// Verbindung anlegen oder ändern
|
||||
/**
|
||||
* save.php
|
||||
*
|
||||
* Zentrale Save-Logik für:
|
||||
* - SVG-Positionen (Geräte, Ports)
|
||||
* - Netzwerk-Layouts
|
||||
* - Rack-/Floor-Positionen
|
||||
* - Sonstige UI-Zustände
|
||||
*
|
||||
* Erwartet JSON per POST
|
||||
*/
|
||||
|
||||
// TODO: bootstrap laden
|
||||
// require_once __DIR__ . '/bootstrap.php';
|
||||
|
||||
// TODO: Auth erzwingen
|
||||
// requireAuth();
|
||||
|
||||
// =========================
|
||||
// Request validieren
|
||||
// =========================
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
http_response_code(405);
|
||||
exit;
|
||||
}
|
||||
|
||||
// TODO: Content-Type prüfen (application/json)
|
||||
|
||||
// =========================
|
||||
// Payload lesen
|
||||
// =========================
|
||||
|
||||
$raw = file_get_contents('php://input');
|
||||
|
||||
// TODO: Fehlerbehandlung bei leerem Body
|
||||
|
||||
$data = json_decode($raw, true);
|
||||
|
||||
// TODO: JSON-Fehler prüfen
|
||||
// if (json_last_error() !== JSON_ERROR_NONE) { ... }
|
||||
|
||||
// =========================
|
||||
// Basisfelder prüfen
|
||||
// =========================
|
||||
|
||||
// Erwartete Struktur (Beispiel):
|
||||
/*
|
||||
{
|
||||
"type": "device_position" | "port_position" | "network_layout" | ...
|
||||
"entity_id": 123,
|
||||
"payload": { ... }
|
||||
}
|
||||
*/
|
||||
|
||||
// TODO: Pflichtfelder prüfen
|
||||
// $type = $data['type'] ?? null;
|
||||
// $entityId = $data['entity_id'] ?? null;
|
||||
// $payload = $data['payload'] ?? null;
|
||||
|
||||
// =========================
|
||||
// Routing nach Typ
|
||||
// =========================
|
||||
|
||||
switch ($type ?? null) {
|
||||
|
||||
case 'device_position':
|
||||
// TODO:
|
||||
// - Gerät-ID validieren
|
||||
// - SVG-Koordinaten speichern
|
||||
// - ggf. Zoom / Rotation
|
||||
break;
|
||||
|
||||
case 'port_position':
|
||||
// TODO:
|
||||
// - Device-Type-Port-ID
|
||||
// - Koordinaten relativ zum SVG
|
||||
break;
|
||||
|
||||
case 'network_layout':
|
||||
// TODO:
|
||||
// - Kontext (Standort / Rack)
|
||||
// - Gerätepositionen
|
||||
// - Verbindungskurven
|
||||
break;
|
||||
|
||||
default:
|
||||
http_response_code(400);
|
||||
echo json_encode([
|
||||
'error' => 'Unknown save type'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// =========================
|
||||
// Antwort
|
||||
// =========================
|
||||
|
||||
// TODO: Erfolg / Fehler zurückgeben
|
||||
echo json_encode([
|
||||
'status' => 'ok'
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user