v2/api.php hinzugefügt
This commit is contained in:
+50
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
// api.php - Backend Logik
|
||||||
|
|
||||||
|
$db_file = __DIR__ . '/status.sqlite';
|
||||||
|
$pdo = new PDO('sqlite:' . $db_file);
|
||||||
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
|
||||||
|
// Tabelle erstellen, falls nicht existent
|
||||||
|
$pdo->exec("CREATE TABLE IF NOT EXISTS nodes (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
server TEXT,
|
||||||
|
client TEXT,
|
||||||
|
status TEXT,
|
||||||
|
handshake TEXT,
|
||||||
|
last_seen DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
UNIQUE(server, client)
|
||||||
|
)");
|
||||||
|
|
||||||
|
// POST: Daten vom Gateway empfangen
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
|
$data = json_decode(file_get_contents('php://input'), true);
|
||||||
|
|
||||||
|
if ($data && isset($data['server']) && isset($data['client'])) {
|
||||||
|
$stmt = $pdo->prepare("
|
||||||
|
INSERT INTO nodes (server, client, status, handshake, last_seen)
|
||||||
|
VALUES (:server, :client, :status, :handshake, datetime('now'))
|
||||||
|
ON CONFLICT(server, client)
|
||||||
|
DO UPDATE SET status=:status, handshake=:handshake, last_seen=datetime('now')
|
||||||
|
");
|
||||||
|
$stmt->execute([
|
||||||
|
':server' => $data['server'],
|
||||||
|
':client' => $data['client'],
|
||||||
|
':status' => $data['status'],
|
||||||
|
':handshake' => $data['handshake']
|
||||||
|
]);
|
||||||
|
echo json_encode(["success" => true]);
|
||||||
|
} else {
|
||||||
|
http_response_code(400);
|
||||||
|
echo json_encode(["error" => "Invalid payload"]);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET: Daten an das Frontend (HTML/JS) ausliefern
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
$stmt = $pdo->query("SELECT * FROM nodes ORDER BY server, client");
|
||||||
|
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user