From 0107c0f137d11ea978946839526bb1a27e7d1ceb Mon Sep 17 00:00:00 2001 From: Christopher Meinhold Date: Fri, 17 Jan 2025 19:57:06 +0100 Subject: [PATCH] Initial commit --- .htaccess | 7 +++++ api.php | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++ config.php | 6 ++++ functions.php | 73 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 165 insertions(+) create mode 100644 .htaccess create mode 100644 api.php create mode 100644 config.php create mode 100644 functions.php diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..e69191b --- /dev/null +++ b/.htaccess @@ -0,0 +1,7 @@ +RewriteEngine On +RewriteBase / + +# Weiterleitung aller Anfragen an api.php +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^(.*)$ api.php?endpoint=$1 [QSA,L] diff --git a/api.php b/api.php new file mode 100644 index 0000000..841053d --- /dev/null +++ b/api.php @@ -0,0 +1,79 @@ + "Ungültiger Endpunkt"]); + exit; +} + +switch ($request_method) { + case 'GET': + if ($endpoint === 'GetDevices') { + if ($id) { + // Einzelnes Gerät abrufen + $device = get_device_by_id($id); + if ($device) { + echo json_encode($device); + } else { + echo json_encode(["error" => "Gerät nicht gefunden"]); + } + } else { + // Alle Geräte abrufen + $devices = get_all_devices(); + echo json_encode($devices); + } + } else { + echo json_encode(["error" => "Ungültiger Endpunkt"]); + } + break; + + case 'POST': + if ($endpoint === 'AddDevice' && $_SERVER['CONTENT_TYPE'] === 'application/json') { + $input = json_decode(file_get_contents('php://input'), true); + if (isset($input['imei'], $input['phone_number'], $input['gps_position'], $input['battery_level'])) { + $id = add_device($input['imei'], $input['phone_number'], $input['gps_position'], $input['battery_level']); + echo json_encode(["message" => "Gerät hinzugefügt", "id" => $id]); + } else { + echo json_encode(["error" => "Ungültige Eingabedaten"]); + } + } else { + echo json_encode(["error" => "Ungültiger Endpunkt"]); + } + break; + + case 'PUT': + if ($endpoint === 'UpdateDevice' && $id && $_SERVER['CONTENT_TYPE'] === 'application/json') { + $input = json_decode(file_get_contents('php://input'), true); + if (isset($input['gps_position'], $input['battery_level'])) { + update_device($id, $input['gps_position'], $input['battery_level']); + echo json_encode(["message" => "Gerät aktualisiert"]); + } else { + echo json_encode(["error" => "Ungültige Eingabedaten"]); + } + } else { + echo json_encode(["error" => "Ungültiger Endpunkt"]); + } + break; + + case 'DELETE': + if ($endpoint === 'DeleteDevice' && $id) { + delete_device($id); + echo json_encode(["message" => "Gerät gelöscht"]); + } else { + echo json_encode(["error" => "Ungültiger Endpunkt"]); + } + break; + + default: + echo json_encode(["error" => "Ungültige HTTP-Methode"]); + break; +} diff --git a/config.php b/config.php new file mode 100644 index 0000000..c0f7882 --- /dev/null +++ b/config.php @@ -0,0 +1,6 @@ +connect_error) { + die("Verbindung fehlgeschlagen: " . $conn->connect_error); + } + return $conn; +} + +// Holt alle Geräte aus der Datenbank +function get_all_devices() { + $conn = db_connect(); + $sql = "SELECT * FROM devices"; + $result = $conn->query($sql); + + $devices = []; + while ($row = $result->fetch_assoc()) { + $devices[] = $row; + } + + $conn->close(); + return $devices; +} + +// Holt ein Gerät nach ID aus der Datenbank +function get_device_by_id($id) { + $conn = db_connect(); + $sql = "SELECT * FROM devices WHERE id = ?"; + $stmt = $conn->prepare($sql); + $stmt->bind_param("i", $id); + $stmt->execute(); + + $result = $stmt->get_result(); + $device = $result->fetch_assoc(); + + $conn->close(); + return $device; +} + +// Fügt ein neues Gerät in die Datenbank ein +function add_device($imei, $phone_number, $gps_position, $battery_level) { + $conn = db_connect(); + $sql = "INSERT INTO devices (imei, phone_number, gps_position, battery_level) VALUES (?, ?, ?, ?)"; + $stmt = $conn->prepare($sql); + $stmt->bind_param("sssd", $imei, $phone_number, $gps_position, $battery_level); + $stmt->execute(); + + $conn->close(); + return $stmt->insert_id; +} + +// Aktualisiert ein Gerät in der Datenbank +function update_device($id, $gps_position, $battery_level) { + $conn = db_connect(); + $sql = "UPDATE devices SET gps_position = ?, battery_level = ? WHERE id = ?"; + $stmt = $conn->prepare($sql); + $stmt->bind_param("sdi", $gps_position, $battery_level, $id); + $stmt->execute(); + + $conn->close(); +} + +// Löscht ein Gerät aus der Datenbank +function delete_device($id) { + $conn = db_connect(); + $sql = "DELETE FROM devices WHERE id = ?"; + $stmt = $conn->prepare($sql); + $stmt->bind_param("i", $id); + $stmt->execute(); + + $conn->close(); +}