settings = new Settings($pdo); $this->logger = ApiLogger::getInstance(); } public function handleRequest(string $method, array $segments): array { $path = '/' . implode('/', $segments); $this->logger->logRequest($method, $path); switch ($method) { case 'GET': return $this->get(); case 'PUT': return $this->update(); default: http_response_code(405); return ['success' => false, 'error' => 'Method not allowed']; } } private function get(): array { $settings = $this->settings->getSettings(); if (!$settings) { http_response_code(404); return ['success' => false, 'error' => 'Settings not found']; } return ['success' => true, 'data' => $settings]; } private function update(): array { $data = json_decode(file_get_contents('php://input'), true); if (!$data) { http_response_code(400); return ['success' => false, 'error' => 'Invalid JSON']; } $settings = $this->settings->updateSettings($data); if (!$settings) { http_response_code(500); return ['success' => false, 'error' => 'Failed to update settings']; } $this->logger->logRequest('PUT', '/api/settings', [], $data); $this->logger->logResponse('PUT', '/api/settings', 200, $settings); return ['success' => true, 'data' => $settings]; } }