Refactoring of code for #1159

This commit is contained in:
James Cole
2018-10-05 17:54:51 +02:00
parent 7ac439fd0e
commit 6f70791239
11 changed files with 543 additions and 336 deletions

View File

@@ -1,7 +1,7 @@
<?php
/**
* ChooseAccountHandler.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* Copyright (c) 2018 https://github.com/bnw
*
* This file is part of Firefly III.
*
@@ -28,19 +28,23 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Import\JobConfiguration\FinTSConfigurationSteps;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\ImportJob;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use FireflyIII\Support\FinTS\FinTS;
use Illuminate\Support\MessageBag;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
/**
*
* Class ChooseAccountHandler
*/
class ChooseAccountHandler implements FinTSConfigurationInterface
{
/** @var AccountRepositoryInterface */
private $accountRepository;
/** @var ImportJob */
private $importJob;
/** @var ImportJobRepositoryInterface */
private $repository;
/** @var AccountRepositoryInterface */
private $accountRepository;
/**
* Store data associated with current stage.
@@ -51,7 +55,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
*/
public function configureJob(array $data): MessageBag
{
$config = $this->importJob->configuration;
$config = $this->repository->getConfiguration($this->importJob);
$config['fints_account'] = (string)($data['fints_account'] ?? '');
$config['local_account'] = (string)($data['local_account'] ?? '');
$config['from_date'] = (string)($data['from_date'] ?? '');
@@ -59,7 +63,7 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
$this->repository->setConfiguration($this->importJob, $config);
try {
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
$finTS = app(FinTS::class, ['config' => $config]);
$finTS->getAccount($config['fints_account']);
} catch (FireflyException $e) {
return new MessageBag([$e->getMessage()]);
@@ -89,19 +93,20 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
foreach ($this->accountRepository->getAccountsByType([AccountType::ASSET]) as $localAccount) {
$display_name = $localAccount->name;
if ($localAccount->iban) {
$display_name .= " - $localAccount->iban";
$display_name .= sprintf(' - %s', $localAccount->iban);
}
$localAccounts[$localAccount->id] = $display_name;
}
$data = [
'fints_accounts' => $finTSAccountsData,
'fints_account' => $this->importJob->configuration['fints_account'] ?? null,
'fints_account' => $this->importJob->configuration['fints_account'] ?? null,
'local_accounts' => $localAccounts,
'local_account' => $this->importJob->configuration['local_account'] ?? null,
'from_date' => $this->importJob->configuration['from_date'] ?? (new Carbon('now - 1 month'))->format('Y-m-d'),
'to_date' => $this->importJob->configuration['to_date'] ?? (new Carbon('now'))->format('Y-m-d')
'local_account' => $this->importJob->configuration['local_account'] ?? null,
'from_date' => $this->importJob->configuration['from_date'] ?? (new Carbon('now - 1 month'))->format('Y-m-d'),
'to_date' => $this->importJob->configuration['to_date'] ?? (new Carbon('now'))->format('Y-m-d'),
];
return $data;
}
@@ -115,6 +120,4 @@ class ChooseAccountHandler implements FinTSConfigurationInterface
$this->accountRepository = app(AccountRepositoryInterface::class);
$this->repository->setUser($importJob->user);
}
}

View File

@@ -1,7 +1,7 @@
<?php
/**
* FinTSConfigurationInterface.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* Copyright (c) 2018 https://github.com/bnw
*
* This file is part of Firefly III.
*
@@ -25,6 +25,9 @@ namespace FireflyIII\Support\Import\JobConfiguration\FinTS;
use FireflyIII\Models\ImportJob;
use Illuminate\Support\MessageBag;
/**
*
*/
interface FinTSConfigurationInterface
{
/**

View File

@@ -1,7 +1,7 @@
<?php
/**
* NewFinTSJobHandler.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* Copyright (c) 2018 https://github.com/bnw
*
* This file is part of Firefly III.
*
@@ -31,6 +31,10 @@ use FireflyIII\Support\FinTS\FinTS;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\MessageBag;
/**
*
* Class NewFinTSJobHandler
*/
class NewFinTSJobHandler implements FinTSConfigurationInterface
{
/** @var ImportJob */
@@ -60,14 +64,14 @@ class NewFinTSJobHandler implements FinTSConfigurationInterface
$incomplete = false;
foreach ($config as $value) {
$incomplete = $value === '' or $incomplete;
$incomplete = '' === $value or $incomplete;
}
if ($incomplete) {
return new MessageBag([trans('import.incomplete_fints_form')]);
}
$finTS = app(FinTS::class, ['config' => $this->importJob->configuration]);
if (($checkConnection = $finTS->checkConnection()) !== true) {
if (true !== ($checkConnection = $finTS->checkConnection())) {
return new MessageBag([trans('import.fints_connection_failed', ['originalError' => $checkConnection])]);
}
@@ -84,11 +88,12 @@ class NewFinTSJobHandler implements FinTSConfigurationInterface
public function getNextData(): array
{
$config = $this->importJob->configuration;
return [
'fints_url' => $config['fints_url'] ?? '',
'fints_port' => $config['fints_port'] ?? '443',
'fints_url' => $config['fints_url'] ?? '',
'fints_port' => $config['fints_port'] ?? '443',
'fints_bank_code' => $config['fints_bank_code'] ?? '',
'fints_username' => $config['fints_username'] ?? ''
'fints_username' => $config['fints_username'] ?? '',
];
}