+57
-1
@@ -39,6 +39,9 @@ try {
|
||||
case 'links':
|
||||
handleLinks($method, $id, $db);
|
||||
break;
|
||||
case 'shapes':
|
||||
handleShapes($method, $id, $db);
|
||||
break;
|
||||
default:
|
||||
http_response_code(404);
|
||||
echo json_encode(['error' => 'Not found']);
|
||||
@@ -207,7 +210,7 @@ function handleLinks($method, $id, $db) {
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
echo json_encode($db->query("
|
||||
SELECT l.*, s.label AS source_label, t.label AS target_label
|
||||
SELECT l.*, s.label AS source_label, s.node_type AS source_type, t.label AS target_label, t.node_type AS target_type
|
||||
FROM network_links l
|
||||
JOIN network_nodes s ON l.source_id = s.id
|
||||
JOIN network_nodes t ON l.target_id = t.id
|
||||
@@ -234,4 +237,57 @@ function handleLinks($method, $id, $db) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function handleShapes($method, $id, $db) {
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
echo json_encode($db->query("SELECT * FROM network_shapes ORDER BY z_index ASC")->fetchAll(PDO::FETCH_ASSOC));
|
||||
break;
|
||||
case 'POST':
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
$stmt = $db->prepare("
|
||||
INSERT INTO network_shapes (label, shape_type, pos_x, pos_y, width, height, color, border_color, opacity, z_index)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
");
|
||||
$stmt->execute([
|
||||
$data['label'] ?? '',
|
||||
$data['shape_type'] ?? 'rectangle',
|
||||
$data['pos_x'] ?? 0,
|
||||
$data['pos_y'] ?? 0,
|
||||
$data['width'] ?? 200,
|
||||
$data['height'] ?? 150,
|
||||
$data['color'] ?? '#1e3a5f',
|
||||
$data['border_color'] ?? '#3b82f6',
|
||||
$data['opacity'] ?? 0.15,
|
||||
$data['z_index'] ?? 0
|
||||
]);
|
||||
echo json_encode(['id' => $db->lastInsertId()]);
|
||||
break;
|
||||
case 'PUT':
|
||||
if ($id) {
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
$fields = [];
|
||||
$params = [];
|
||||
foreach (['label','shape_type','pos_x','pos_y','width','height','color','border_color','opacity','z_index'] as $f) {
|
||||
if (isset($data[$f])) {
|
||||
$fields[] = "$f = ?";
|
||||
$params[] = $data[$f];
|
||||
}
|
||||
}
|
||||
if ($fields) {
|
||||
$params[] = $id;
|
||||
$stmt = $db->prepare("UPDATE network_shapes SET " . implode(', ', $fields) . " WHERE id = ?");
|
||||
$stmt->execute($params);
|
||||
}
|
||||
echo json_encode(['updated' => true]);
|
||||
}
|
||||
break;
|
||||
case 'DELETE':
|
||||
if ($id) {
|
||||
$db->prepare("DELETE FROM network_shapes WHERE id = ?")->execute([$id]);
|
||||
echo json_encode(['deleted' => true]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user