Backup #724

ID724
Dateipfad/var/www/dev.campus.systemische-tools.de/src/UseCases/Pipeline/UpdatePipelineConfigUseCase.php
Version1
Typ modified
Größe1.9 KB
Hashdec62da29dcb8a5f831389088b36bd424d878c3e6587af14af541549489a9233
Datum2025-12-23 07:56:26
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php

declare(strict_types=1);

namespace UseCases\Pipeline;

use Infrastructure\Config\PipelineStepConfig;
use Infrastructure\Persistence\PipelineRepository;

/**
 * UpdatePipelineConfigUseCase - Update pipeline configuration.
 *
 * Handles validation and updating of pipeline source path and extensions.
 */
class UpdatePipelineConfigUseCase
{
    private PipelineRepository $repository;

    public function __construct(?PipelineRepository $repository = null)
    {
        $this->repository = $repository ?? new PipelineRepository();
    }

    /**
     * Update pipeline configuration.
     *
     * @param int $pipelineId Pipeline ID
     * @param array{source_path?: string, extensions?: string} $input Input data
     * @return array{success: bool, error?: string}
     */
    public function execute(int $pipelineId, array $input): array
    {
        $pipeline = $this->repository->findById($pipelineId);

        if ($pipeline === null) {
            return ['success' => false, 'error' => 'Pipeline nicht gefunden'];
        }

        $updateData = [];

        if (isset($input['source_path'])) {
            $sourcePath = trim($input['source_path']);
            if ($sourcePath === '') {
                return ['success' => false, 'error' => 'Quellpfad darf nicht leer sein'];
            }
            $updateData['source_path'] = $sourcePath;
        }

        if (isset($input['extensions'])) {
            $extensions = PipelineStepConfig::parseExtensions($input['extensions']);
            if (empty($extensions)) {
                return ['success' => false, 'error' => 'Mindestens ein Dateityp erforderlich'];
            }
            $updateData['extensions'] = $extensions;
        }

        if (empty($updateData)) {
            return ['success' => false, 'error' => 'Keine Änderungen'];
        }

        $this->repository->update($pipelineId, $updateData);

        return ['success' => true];
    }
}

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
834 2 modified 1.8 KB 2025-12-23 08:16
724 1 modified 1.9 KB 2025-12-23 07:56

← Zurück zur Übersicht