{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Pipeline\/PipelineRunStatusUseCase.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/UseCases\/Pipeline\/UpdatePipelineConfigUseCase.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace UseCases\\Pipeline;\n\n\/\/ @responsibility: Aktualisiert Pipeline-Konfiguration (Pfad, Extensions)\n\nuse Infrastructure\\Config\\PipelineStepConfig;\nuse Infrastructure\\Persistence\\PipelineRepository;\n\nclass UpdatePipelineConfigUseCase\n{\n private PipelineRepository $repository;\n\n public function __construct(?PipelineRepository $repository = null)\n {\n $this->repository = $repository ?? new PipelineRepository();\n }\n\n \/**\n * Update pipeline configuration.\n *\n * @param int $pipelineId Pipeline ID\n * @param array{source_path?: string, extensions?: string} $input Input data\n * @return array{success: bool, error?: string}\n *\/\n public function execute(int $pipelineId, array $input): array\n {\n $pipeline = $this->repository->findById($pipelineId);\n\n if ($pipeline === null) {\n return ['success' => false, 'error' => 'Pipeline nicht gefunden'];\n }\n\n $updateData = [];\n\n if (isset($input['source_path'])) {\n $sourcePath = trim($input['source_path']);\n if ($sourcePath === '') {\n return ['success' => false, 'error' => 'Quellpfad darf nicht leer sein'];\n }\n $updateData['source_path'] = $sourcePath;\n }\n\n if (isset($input['extensions'])) {\n $extensions = PipelineStepConfig::parseExtensions($input['extensions']);\n if (empty($extensions)) {\n return ['success' => false, 'error' => 'Mindestens ein Dateityp erforderlich'];\n }\n $updateData['extensions'] = $extensions;\n }\n\n if (empty($updateData)) {\n return ['success' => false, 'error' => 'Keine Änderungen'];\n }\n\n $this->repository->update($pipelineId, $updateData);\n\n return ['success' => true];\n }\n}\n",
"numLines": 63,
"startLine": 1,
"totalLines": 63
}
}
}