Commit 75853d7a authored by Florentin L'Homme's avatar Florentin L'Homme
Browse files

Quelques ré-agencements autour du setColumns et de la suppression du SourceCodeColumn de dedans

parent 96d5e267
Loading
Loading
Loading
Loading
+0 −13
Changes for src/UnicaenDbImport/DatabaseFacade.php: 0 added lines, 13 removed lines.
Original line number Diff line number Diff line
@@ -252,19 +252,6 @@ class DatabaseFacade

            $columns = array_keys($result[0]);

            // recherche puis retrait de la colonne $source->getSourceCodeColumn()
            $key = array_search($sourceCodeCol = strtoupper($source->getSourceCodeColumn()), array_map('strtoupper',$columns));
            if ($key === FALSE) {
                throw new RuntimeException(
                    "La colonne de référence '$sourceCodeCol' est introuvable dans les données sources");
            }
            unset($columns[$key]);

            if (empty($columns)) {
                throw new RuntimeException(
                    "Les données sources doivent comporter au moins une colonne *en plus* de la colonne de référence '$sourceCodeCol'");
            }

            $source->setData($result);
            $source->setColumns($columns);
        }
+20 −2
Changes for src/UnicaenDbImport/Domain/Source.php: 20 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace UnicaenDbImport\Domain;

use Assert\AssertionChain;
use Doctrine\DBAL\Connection;
use UnicaenApp\Exception\RuntimeException;
use UnicaenDbImport\Config\ConfigException;
use Zend\Stdlib\Parameters;

@@ -101,16 +102,33 @@ class Source implements SourceInterface

    public function getSourceCodeColumn()
    {
        return $this->config->get('source_code_column');
        return strtoupper($this->config->get('source_code_column'));
    }

    public function getColumns()
    {
        return $this->columns;
        return array_map('strtoupper',$this->columns);
    }

    public function setColumns(array $columns)
    {
        $sourceCodeColumn = $this->getSourceCodeColumn();
        $columns = array_map('strtoupper', $columns);

        // recherche puis retrait de la colonne $this->getSourceCodeColumn()
        $key = array_search($sourceCodeColumn, $columns);

        if ($key === FALSE) {
            throw new RuntimeException(
                "La colonne de référence '$sourceCodeColumn' est introuvable dans les colonnes spécifiées");
        }
        unset($columns[$key]);

        if (empty($columns)) {
            throw new RuntimeException(
                "Les données sources doivent comporter au moins une colonne *en plus* de la colonne de référence '$sourceCodeColumn'");
        }

        $this->columns = $columns;
    }