Add IBAN to account validator.

This commit is contained in:
James Cole
2020-03-31 07:04:00 +02:00
parent 144bc29eb3
commit 9e4b7f8bb4
9 changed files with 37 additions and 33 deletions

View File

@@ -80,14 +80,15 @@ class AccountValidator
}
/**
* @param int|null $destinationId
* @param $destinationName
* @param int|null $accountId
* @param string|null $accountName
* @param string|null $accountIban
*
* @return bool
*/
public function validateDestination(?int $destinationId, $destinationName): bool
public function validateDestination(?int $accountId, ?string $accountName, ?string $accountIban): bool
{
Log::debug(sprintf('Now in AccountValidator::validateDestination(%d, "%s")', $destinationId, $destinationName));
Log::debug(sprintf('Now in AccountValidator::validateDestination(%d, "%s", "%s")', $accountId, $accountName, $accountIban));
if (null === $this->source) {
Log::error('Source is NULL, always FALSE.');
$this->destError = 'No source account validation has taken place yet. Please do this first or overrule the object.';
@@ -103,19 +104,19 @@ class AccountValidator
break;
case TransactionType::WITHDRAWAL:
$result = $this->validateWithdrawalDestination($destinationId, $destinationName);
$result = $this->validateWithdrawalDestination($accountId, $accountName);
break;
case TransactionType::DEPOSIT:
$result = $this->validateDepositDestination($destinationId, $destinationName);
$result = $this->validateDepositDestination($accountId, $accountName);
break;
case TransactionType::TRANSFER:
$result = $this->validateTransferDestination($destinationId, $destinationName);
$result = $this->validateTransferDestination($accountId, $accountName);
break;
case TransactionType::OPENING_BALANCE:
$result = $this->validateOBDestination($destinationId, $destinationName);
$result = $this->validateOBDestination($accountId, $accountName);
break;
case TransactionType::RECONCILIATION:
$result = $this->validateReconciliationDestination($destinationId);
$result = $this->validateReconciliationDestination($accountId);
break;
}
@@ -125,12 +126,13 @@ class AccountValidator
/**
* @param int|null $accountId
* @param string|null $accountName
* @param string|null $accountIban
*
* @return bool
*/
public function validateSource(?int $accountId, ?string $accountName): bool
public function validateSource(?int $accountId, ?string $accountName, ?string $accountIban): bool
{
Log::debug(sprintf('Now in AccountValidator::validateSource(%d, "%s")', $accountId, $accountName));
Log::debug(sprintf('Now in AccountValidator::validateSource(%d, "%s", "%s")', $accountId, $accountName, $accountIban));
switch ($this->transactionType) {
default:
$result = false;

View File

@@ -65,7 +65,7 @@ trait RecurrenceValidation
// validate source account.
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : null;
$sourceName = $transaction['source_name'] ?? null;
$validSource = $accountValidator->validateSource($sourceId, $sourceName);
$validSource = $accountValidator->validateSource($sourceId, $sourceName, null);
// do something with result:
if (false === $validSource) {
@@ -77,7 +77,7 @@ trait RecurrenceValidation
// validate destination account
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null;
$destinationName = $transaction['destination_name'] ?? null;
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName);
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName, null);
// do something with result:
if (false === $validDestination) {
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);

View File

@@ -72,9 +72,10 @@ trait TransactionValidation
$accountValidator->setTransactionType($transactionType);
// validate source account.
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : null;
$sourceId = isset($transaction['source_id']) ? (int) $transaction['source_id'] : null;
$sourceName = $transaction['source_name'] ?? null;
$validSource = $accountValidator->validateSource($sourceId, $sourceName);
$sourceIban = $transaction['source_iban'] ?? null;
$validSource = $accountValidator->validateSource($sourceId, $sourceName, $sourceIban);
// do something with result:
if (false === $validSource) {
@@ -84,9 +85,10 @@ trait TransactionValidation
return;
}
// validate destination account
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null;
$destinationId = isset($transaction['destination_id']) ? (int) $transaction['destination_id'] : null;
$destinationName = $transaction['destination_name'] ?? null;
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName);
$destinationIban = $transaction['destination_iban'] ?? null;
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName, $destinationIban);
// do something with result:
if (false === $validDestination) {
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
@@ -140,7 +142,7 @@ trait TransactionValidation
// validate source account.
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : $originalData['source_id'];
$sourceName = $transaction['source_name'] ?? $originalData['source_name'];
$validSource = $accountValidator->validateSource($sourceId, $sourceName);
$validSource = $accountValidator->validateSource($sourceId, $sourceName, null);
// do something with result:
if (false === $validSource) {
@@ -152,7 +154,7 @@ trait TransactionValidation
// validate destination account
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : $originalData['destination_id'];
$destinationName = $transaction['destination_name'] ?? $originalData['destination_name'];
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName);
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName, null);
// do something with result:
if (false === $validDestination) {
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);