ApiRescueTabletManv/api.php

80 lines
2.8 KiB
PHP

<?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;
}