Initial commit

This commit is contained in:
Christopher Meinhold 2025-01-17 19:57:06 +01:00
commit 0107c0f137
4 changed files with 165 additions and 0 deletions

7
.htaccess Normal file
View File

@ -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]

79
api.php Normal file
View File

@ -0,0 +1,79 @@
<?php
header("Content-Type: application/json");
include('config.php');
include('functions.php');
// Holen des Endpunkts und der Methode
$request_method = $_SERVER['REQUEST_METHOD'];
$uri = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$endpoint = isset($uri[0]) ? $uri[0] : null;
$id = isset($uri[1]) ? $uri[1] : null;
// Wenn kein Endpunkt angegeben ist, Fehler zurückgeben
if (!$endpoint) {
echo json_encode(["error" => "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;
}

6
config.php Normal file
View File

@ -0,0 +1,6 @@
<?php
define('DB_HOST', '155.133.215.203');
define('DB_USER', 'recueManvDevices'); // Dein MySQL-Benutzer
define('DB_PASS', '3JKD3mKN8.oM/Y1q'); // Dein MySQL-Passwort
define('DB_NAME', 'recueManvDevices'); // Name der Datenbank

73
functions.php Normal file
View File

@ -0,0 +1,73 @@
<?php
// Verbindet sich zur MySQL-Datenbank
function db_connect() {
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($conn->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();
}