From 3e1bba948e16f0a3a9be6839fa7f69496756c350 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 2 Dec 2021 16:50:30 +0100 Subject: [PATCH] Add spectre --- app/Console/AutoImports.php | 27 ++++++++++----- .../Nordigen/Conversion/RoutineManager.php | 33 ++++++++++++++++++ .../Spectre/Conversion/RoutineManager.php | 34 +++++++++++++++++++ 3 files changed, 85 insertions(+), 9 deletions(-) diff --git a/app/Console/AutoImports.php b/app/Console/AutoImports.php index 7f06ba55..00340d9e 100644 --- a/app/Console/AutoImports.php +++ b/app/Console/AutoImports.php @@ -27,6 +27,8 @@ namespace App\Console; use App\Exceptions\ImporterErrorException; use App\Services\CSV\Configuration\Configuration; use App\Services\CSV\Conversion\RoutineManager as CSVRoutineManager; +use App\Services\Nordigen\Conversion\RoutineManager as NordigenRoutineManager; +use App\Services\Spectre\Conversion\RoutineManager as SpectreRoutineManager; use App\Services\Shared\Conversion\ConversionStatus; use App\Services\Shared\Conversion\RoutineStatusManager; use App\Services\Shared\Import\Routine\RoutineManager; @@ -162,7 +164,7 @@ trait AutoImports private function importFile(string $directory, string $file): void { $csvFile = sprintf('%s/%s', $directory, $file); - $jsonFile = sprintf('%s/%s.json', $directory, substr($file, 0, -4)); + $jsonFile = sprintf('%s/%s.json', $directory, substr($file, 0, -5)); // do JSON check $jsonResult = $this->verifyJSON($jsonFile); @@ -177,12 +179,11 @@ trait AutoImports $this->line(sprintf('Going to convert from file %s using configuration %s and flow "%s".', $csvFile, $jsonFile, $configuration->getFlow())); // this is it! - $conversions = $this->startConversion($configuration, $csvFile); - // TODO report on messages, warnings and errors from the conversion + $this->startConversion($configuration, $csvFile); $this->reportConversion(); $this->line(sprintf('Done converting from file %s using configuration %s.', $csvFile, $jsonFile)); - $this->startImport($configuration, $conversions); + $this->startImport($configuration); $this->reportImport(); $this->line('Done!'); @@ -281,6 +282,14 @@ trait AutoImports $this->identifier = $manager->getIdentifier(); $manager->setContent(file_get_contents($csvFile)); break; + case 'nordigen': + $manager = new NordigenRoutineManager(null); + $this->identifier = $manager->getIdentifier(); + break; + case 'spectre': + $manager = new SpectreRoutineManager(null); + $this->identifier = $manager->getIdentifier(); + break; } RoutineStatusManager::startOrFindConversion($this->identifier); @@ -390,13 +399,13 @@ trait AutoImports * @param Configuration $configuration * @param array $transactions */ - private function startImport(Configuration $configuration, array $transactions): void + private function startImport(Configuration $configuration): void { Log::debug(sprintf('Now at %s', __METHOD__)); - $routine = new RoutineManager($this->identifier); - $importJobStatus = SubmissionStatusManager::startOrFindSubmission($this->identifier); - $disk = Storage::disk('jobs'); - $fileName = sprintf('%s.json', $this->identifier); + $routine = new RoutineManager($this->identifier); + SubmissionStatusManager::startOrFindSubmission($this->identifier); + $disk = Storage::disk('jobs'); + $fileName = sprintf('%s.json', $this->identifier); // get files from disk: if (!$disk->has($fileName)) { diff --git a/app/Services/Nordigen/Conversion/RoutineManager.php b/app/Services/Nordigen/Conversion/RoutineManager.php index b554b492..ff93fde6 100644 --- a/app/Services/Nordigen/Conversion/RoutineManager.php +++ b/app/Services/Nordigen/Conversion/RoutineManager.php @@ -19,6 +19,9 @@ use Log; */ class RoutineManager implements RoutineManagerInterface { + private array $allMessages; + private array $allWarnings; + private array $allErrors; use IsRunningCli, GeneratesIdentifier; private Configuration $configuration; @@ -31,6 +34,11 @@ class RoutineManager implements RoutineManagerInterface */ public function __construct(?string $identifier) { + // TODO conversion does not add errors, warnings and messages. + $this->allErrors = []; + $this->allWarnings = []; + $this->allMessages = []; + if (null === $identifier) { $this->generateIdentifier(); } @@ -94,4 +102,29 @@ class RoutineManager implements RoutineManagerInterface return $filtered; } + + /** + * @return array + */ + public function getAllMessages(): array + { + return $this->allMessages; + } + + /** + * @return array + */ + public function getAllWarnings(): array + { + return $this->allWarnings; + } + + /** + * @return array + */ + public function getAllErrors(): array + { + return $this->allErrors; + } + } diff --git a/app/Services/Spectre/Conversion/RoutineManager.php b/app/Services/Spectre/Conversion/RoutineManager.php index f0ad59fc..5230bb99 100644 --- a/app/Services/Spectre/Conversion/RoutineManager.php +++ b/app/Services/Spectre/Conversion/RoutineManager.php @@ -36,6 +36,10 @@ class RoutineManager implements RoutineManagerInterface { use GeneratesIdentifier; + private array $allMessages; + private array $allWarnings; + private array $allErrors; + private Configuration $configuration; private TransactionProcessor $transactionProcessor; private GenerateTransactions $transactionGenerator; @@ -46,6 +50,11 @@ class RoutineManager implements RoutineManagerInterface */ public function __construct(?string $identifier) { + // TODO conversion does not add errors, warnings and messages. + $this->allErrors = []; + $this->allWarnings = []; + $this->allMessages = []; + $this->transactionProcessor = new TransactionProcessor; $this->transactionGenerator = new GenerateTransactions; $this->transactionFilter = new FilterTransactions; @@ -91,4 +100,29 @@ class RoutineManager implements RoutineManagerInterface return $filtered; } + + + /** + * @return array + */ + public function getAllMessages(): array + { + return $this->allMessages; + } + + /** + * @return array + */ + public function getAllWarnings(): array + { + return $this->allWarnings; + } + + /** + * @return array + */ + public function getAllErrors(): array + { + return $this->allErrors; + } }