getUsername()), ); echo json_encode(['success' => true, 'entries' => array_values($entries ?? [])]); break; } // ---------- Neues Ticket anlegen ---------- case 'add_entry': { foreach (['titel', 'beschreibung'] as $feld) { if (empty($daten[$feld])) { throw new InvalidArgumentException("Pflichtfeld fehlt: $feld"); } } $titel = $daten['titel']; $beschreibung = $daten['beschreibung']; $user = ucfirst(strtolower((new getSpecificData())->getUsername())); DatabaseInsert( "Tickets", "TITEL, BESCHREIBUNG, STATUS, ERSTELLER", $titel, $beschreibung, "OFFEN", $user, ); sendMail( "Neues Ticket von $user", "Titel: $titel\nBeschreibung: $beschreibung", (new getSpecificData())->getRequestURL(), true, ); echo json_encode(['success' => true]); break; } // ---------- Ticket löschen ---------- case 'delete_entry': { $id = $daten['id'] ?? null; if (!is_numeric($id)) { throw new InvalidArgumentException('Ungültige ID'); } DatabaseDelete("Tickets", "ID = ?", (int)$id); echo json_encode(['success' => true]); break; } default: throw new InvalidArgumentException("Unbekannte Aktion: $action"); } } catch (InvalidArgumentException $e) { http_response_code(400); echo json_encode(['error' => $e->getMessage()]); } catch (Throwable $e) { http_response_code(500); error_log($e->getMessage()); echo json_encode(['error' => 'Serverfehler']); }