diff --git a/src/CSV/FingersCrossed/Extractor.php b/src/CSV/FingersCrossed/Extractor.php index ecc1927..5a7a1dd 100644 --- a/src/CSV/FingersCrossed/Extractor.php +++ b/src/CSV/FingersCrossed/Extractor.php @@ -18,7 +18,8 @@ public function __construct( private ReaderInterface $reader, private int $skipLines = 0, private LoggerInterface $logger = new NullLogger() - ) {} + ) { + } public function extract(): iterable { diff --git a/src/CSV/FingersCrossed/Loader.php b/src/CSV/FingersCrossed/Loader.php index 7614357..26a1701 100644 --- a/src/CSV/FingersCrossed/Loader.php +++ b/src/CSV/FingersCrossed/Loader.php @@ -23,7 +23,8 @@ public function __construct( private WriterInterface $writer, private LoggerInterface $logger = new NullLogger() - ) {} + ) { + } public function load(): \Generator { diff --git a/src/CSV/Safe/Extractor.php b/src/CSV/Safe/Extractor.php index 0b0021b..5aca5c0 100644 --- a/src/CSV/Safe/Extractor.php +++ b/src/CSV/Safe/Extractor.php @@ -18,7 +18,8 @@ public function __construct( private ReaderInterface $reader, private int $skipLines = 0, private LoggerInterface $logger = new NullLogger() - ) {} + ) { + } public function extract(): iterable { diff --git a/src/CSV/Safe/Loader.php b/src/CSV/Safe/Loader.php index a27ed69..7263437 100644 --- a/src/CSV/Safe/Loader.php +++ b/src/CSV/Safe/Loader.php @@ -23,7 +23,8 @@ public function __construct( private WriterInterface $writer, private LoggerInterface $logger = new NullLogger() - ) {} + ) { + } public function load(): \Generator { diff --git a/src/Sheet/FingersCrossed/Extractor.php b/src/Sheet/FingersCrossed/Extractor.php index 37d643d..6ba9d0a 100644 --- a/src/Sheet/FingersCrossed/Extractor.php +++ b/src/Sheet/FingersCrossed/Extractor.php @@ -21,7 +21,8 @@ public function __construct( private string $sheetName, private int $skipLines = 0, private LoggerInterface $logger = new NullLogger() - ) {} + ) { + } public function extract(): iterable { diff --git a/src/Sheet/FingersCrossed/Loader.php b/src/Sheet/FingersCrossed/Loader.php index 2321faa..de452ff 100644 --- a/src/Sheet/FingersCrossed/Loader.php +++ b/src/Sheet/FingersCrossed/Loader.php @@ -12,21 +12,16 @@ use Kiboko\Component\Bucket\AcceptanceResultBucket; use Kiboko\Component\Bucket\EmptyResultBucket; use Kiboko\Component\Bucket\RejectionResultBucket; -use Kiboko\Contract\Bucket\ResultBucketInterface; -use Kiboko\Contract\Pipeline\FlushableInterface; use Kiboko\Contract\Pipeline\LoaderInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; -final readonly class Loader implements LoaderInterface, FlushableInterface +final readonly class Loader implements LoaderInterface { public function __construct( private WriterInterface $writer, - private string $sheetName, private LoggerInterface $logger = new NullLogger() ) { - /* @phpstan-ignore-next-line */ - $this->writer->getCurrentSheet()->setName($this->sheetName); } public function load(): \Generator @@ -65,11 +60,4 @@ public function load(): \Generator $line = yield new AcceptanceResultBucket($line); } } - - public function flush(): ResultBucketInterface - { - $this->writer->close(); - - return new EmptyResultBucket(); - } } diff --git a/src/Sheet/Safe/Extractor.php b/src/Sheet/Safe/Extractor.php index 949312c..62a9c1e 100644 --- a/src/Sheet/Safe/Extractor.php +++ b/src/Sheet/Safe/Extractor.php @@ -21,7 +21,8 @@ public function __construct( private string $sheetName, private int $skipLines = 0, private LoggerInterface $logger = new NullLogger() - ) {} + ) { + } public function extract(): iterable { diff --git a/src/Sheet/Safe/Loader.php b/src/Sheet/Safe/Loader.php index bcea776..c863ad6 100644 --- a/src/Sheet/Safe/Loader.php +++ b/src/Sheet/Safe/Loader.php @@ -11,22 +11,16 @@ use Box\Spout\Writer\WriterInterface; use Kiboko\Component\Bucket\AcceptanceResultBucket; use Kiboko\Component\Bucket\EmptyResultBucket; -use Kiboko\Component\Bucket\RejectionResultBucket; -use Kiboko\Contract\Bucket\ResultBucketInterface; -use Kiboko\Contract\Pipeline\FlushableInterface; use Kiboko\Contract\Pipeline\LoaderInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; -final readonly class Loader implements LoaderInterface, FlushableInterface +final readonly class Loader implements LoaderInterface { public function __construct( private WriterInterface $writer, - private string $sheetName, private LoggerInterface $logger = new NullLogger() ) { - /* @phpstan-ignore-next-line */ - $this->writer->getCurrentSheet()->setName($this->sheetName); } public function load(): \Generator @@ -37,27 +31,18 @@ public function load(): \Generator $this->writer->addRow( new Row(array_map(fn ($value) => new Cell($value), array_keys($line)), null) ); - } catch (IOException|WriterNotOpenedException $exception) { + } catch (WriterNotOpenedException|IOException $exception) { $this->logger->error('Impossible to load data to the given CSV file.', ['line' => $line, 'message' => $exception->getMessage(), 'previous' => $exception->getPrevious()]); - $line = yield new RejectionResultBucket( - 'Impossible to load data to the given CSV file.', - $exception, - $line - ); + + return; } /* @phpstan-ignore-next-line */ while (true) { try { $this->writer->addRow($this->orderColumns($headers, $line)); - } catch (IOException|WriterNotOpenedException $exception) { + } catch (WriterNotOpenedException|IOException $exception) { $this->logger->error('Impossible to load data to the given CSV file.', ['line' => $line, 'message' => $exception->getMessage(), 'previous' => $exception->getPrevious()]); - $line = yield new RejectionResultBucket( - 'Impossible to load data to the given CSV file.', - $exception, - $line - ); - continue; } $line = yield new AcceptanceResultBucket($line); @@ -73,11 +58,4 @@ private function orderColumns(array $headers, array $line): Row return new Row($result, null); } - - public function flush(): ResultBucketInterface - { - $this->writer->close(); - - return new EmptyResultBucket(); - } } diff --git a/tests/functional/Sheet/FingersCrossed/ExcelLoaderTest.php b/tests/functional/Sheet/FingersCrossed/ExcelLoaderTest.php index 49911a9..6369a08 100644 --- a/tests/functional/Sheet/FingersCrossed/ExcelLoaderTest.php +++ b/tests/functional/Sheet/FingersCrossed/ExcelLoaderTest.php @@ -74,9 +74,11 @@ public function load(): void 'last name' => 'dupont', ], ], - new Loader($this->writer, 'Sheet1') + new Loader($this->writer) ); + $this->writer->close(); + $this->assertRowWasWrittenToExcel( /* 'vfs://test.xlsx' */ $path, 'Sheet1', diff --git a/tests/functional/Sheet/FingersCrossed/OpenDocumentLoaderTest.php b/tests/functional/Sheet/FingersCrossed/OpenDocumentLoaderTest.php index 6794e82..16a7db9 100644 --- a/tests/functional/Sheet/FingersCrossed/OpenDocumentLoaderTest.php +++ b/tests/functional/Sheet/FingersCrossed/OpenDocumentLoaderTest.php @@ -74,9 +74,11 @@ public function load(): void 'last name' => 'dupont', ], ], - new Loader($this->writer, 'Sheet1') + new Loader($this->writer) ); + $this->writer->close(); + $this->assertRowWasWrittenToOpenDocument( /* 'vfs://test.ods' */ $path, 'Sheet1', diff --git a/tests/functional/Sheet/Safe/ExcelLoaderTest.php b/tests/functional/Sheet/Safe/ExcelLoaderTest.php index d794c4a..01255fc 100644 --- a/tests/functional/Sheet/Safe/ExcelLoaderTest.php +++ b/tests/functional/Sheet/Safe/ExcelLoaderTest.php @@ -74,9 +74,11 @@ public function load(): void 'last name' => 'dupont', ], ], - new Loader($this->writer, 'Sheet1') + new Loader($this->writer) ); + $this->writer->close(); + $this->assertRowWasWrittenToExcel( /* 'vfs://test.xlsx' */ $path, 'Sheet1', diff --git a/tests/functional/Sheet/Safe/OpenDocumentLoaderTest.php b/tests/functional/Sheet/Safe/OpenDocumentLoaderTest.php index 4b85834..ddb14d0 100644 --- a/tests/functional/Sheet/Safe/OpenDocumentLoaderTest.php +++ b/tests/functional/Sheet/Safe/OpenDocumentLoaderTest.php @@ -74,9 +74,11 @@ public function load(): void 'last name' => 'dupont', ], ], - new Loader($this->writer, 'Sheet1') + new Loader($this->writer) ); + $this->writer->close(); + $this->assertRowWasWrittenToOpenDocument( /* 'vfs://test.ods' */ $path, 'Sheet1',