moduleManager->list(false); return new JsonResponse(['modules' => $modules]); } #[AuthenticatedRoute('/modules/manage', name: 'modules.manage', methods: ['POST'])] public function manage(string $handle, string $action): JsonResponse { // Verify module exists $moduleInstance = $this->moduleManager->moduleInstance($handle, null); if (!$moduleInstance) { return new JsonResponse(['error' => 'Module "' . $handle . '" not found.'], 404); } switch ($action) { case 'install': $this->moduleManager->install($handle); return new JsonResponse(['message' => 'Module "' . $handle . '" installed successfully.']); case 'uninstall': $this->moduleManager->uninstall($handle); return new JsonResponse(['message' => 'Module "' . $handle . '" uninstalled successfully.']); case 'enable': $this->moduleManager->enable($handle); return new JsonResponse(['message' => 'Module "' . $handle . '" enabled successfully.']); case 'disable': $this->moduleManager->disable($handle); return new JsonResponse(['message' => 'Module "' . $handle . '" disabled successfully.']); case 'upgrade': $this->moduleManager->upgrade($handle); return new JsonResponse(['message' => 'Module "' . $handle . '" upgraded successfully.']); default: return new JsonResponse(['error' => 'Invalid action.'], 400); } } }