From dd7bdc06f4c874cb94d92b5af8f1879281ca5d8c Mon Sep 17 00:00:00 2001 From: Christopher Meinhold Date: Sun, 19 Jan 2025 18:38:13 +0100 Subject: [PATCH] Erster Commit --- .htaccess | 7 ++++ alt_functions.php | 73 ++++++++++++++++++++++++++++++++++++++ api.php | 79 ++++++++++++++++++++++++++++++++++++++++++ config.php | 6 ++++ modules/GetRecipes.php | 73 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 238 insertions(+) create mode 100644 .htaccess create mode 100644 alt_functions.php create mode 100644 api.php create mode 100644 config.php create mode 100644 modules/GetRecipes.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/alt_functions.php b/alt_functions.php new file mode 100644 index 0000000..42381d3 --- /dev/null +++ b/alt_functions.php @@ -0,0 +1,73 @@ +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(); +} diff --git a/api.php b/api.php new file mode 100644 index 0000000..ebf66a5 --- /dev/null +++ b/api.php @@ -0,0 +1,79 @@ + "Ungültiger Endpunkt"]); + exit; +} + +switch ($request_method) { + case 'GET': + if ($endpoint === 'GetRecipes') { + if ($id) { + // Einzelnes Gerät abrufen + $recipe = get_recipes_by_id($id); + if ($recipe) { + echo json_encode($recipe); + } else { + echo json_encode(["error" => "Rezept nicht gefunden"]); + } + } else { + // Alle Geräte abrufen + $recipes = get_all_recipes(); + echo json_encode($recipes); + } + } 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..9e02852 --- /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(); +}