Catch various errors.

This commit is contained in:
James Cole 2018-07-26 06:27:52 +02:00
parent 6bcfea1de4
commit 89be30c4b9
19 changed files with 76 additions and 50 deletions

View File

@ -88,8 +88,9 @@ class RegisterController extends Controller
session()->flash('success', (string)trans('firefly.registered'));
return $this->registered($request, $user)
?: redirect($this->redirectPath());
$this->registered($request, $user);
return redirect($this->redirectPath());
}
/**

View File

@ -65,4 +65,4 @@ class IsAssetAccountId implements Rule
return true;
}
}
}

View File

@ -25,8 +25,6 @@ namespace FireflyIII\Services\Bunq;
use bunq\Context\ApiContext as BunqApiContext;
use bunq\Context\BunqContext;
use bunq\Exception\BadRequestException;
use bunq\Exception\BunqException;
use bunq\Util\BunqEnumApiEnvironmentType;
use Exception;
use FireflyIII\Exceptions\FireflyException;
@ -39,6 +37,7 @@ use Log;
*/
class ApiContext
{
/** @noinspection MoreThanThreeArgumentsInspection */
/**
* @param BunqEnumApiEnvironmentType $environmentType
* @param string $apiKey
@ -50,11 +49,11 @@ class ApiContext
* @return BunqApiContext
*/
public function create(BunqEnumApiEnvironmentType $environmentType, string $apiKey, string $description, array $permittedIps, string $proxyUrl = null
) {
): BunqApiContext {
$permittedIps = $permittedIps ?? [];
try {
$context = BunqApiContext::create($environmentType, $apiKey, $description, $permittedIps, $proxyUrl);
} catch (BunqException|BadRequestException|Exception $e) {
} catch (Exception $e) {
$message = $e->getMessage();
Log::error($message);
Log::error($e->getTraceAsString());
@ -78,7 +77,7 @@ class ApiContext
try {
$apiContext = BunqApiContext::fromJson($jsonString);
BunqContext::loadApiContext($apiContext);
} catch (BadRequestException|BunqException|Exception $e) {
} catch (Exception $e) {
$message = $e->getMessage();
Log::error($message);
Log::error($e->getTraceAsString());

View File

@ -23,7 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Services\Bunq;
use bunq\Exception\BunqException;
use bunq\Model\Generated\Endpoint\BunqResponseMonetaryAccountList;
use bunq\Model\Generated\Endpoint\MonetaryAccount as BunqMonetaryAccount;
use Exception;
@ -47,7 +47,7 @@ class MonetaryAccount
$customHeaders = $customHeaders ?? [];
try {
$result = BunqMonetaryAccount::listing($params, $customHeaders);
} catch (BunqException|Exception $e) {
} catch (Exception $e) {
throw new FireflyException($e->getMessage());
}

View File

@ -23,7 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Services\Bunq;
use bunq\Exception\BunqException;
use bunq\Model\Generated\Endpoint\BunqResponsePaymentList;
use bunq\Model\Generated\Endpoint\Payment as BunqPayment;
use Exception;
@ -49,7 +49,7 @@ class Payment
$customHeaders = $customHeaders ?? [];
try {
$result = BunqPayment::listing($monetaryAccountId, $params, $customHeaders);
} catch (BunqException|Exception $e) {
} catch (Exception $e) {
throw new FireflyException($e->getMessage());
}

View File

@ -74,17 +74,19 @@ class FixerIOv2 implements ExchangeRateInterface
);
$statusCode = -1;
Log::debug(sprintf('Going to request exchange rate using URI %s', str_replace($apiKey, 'xxxx', $uri)));
$client = new Client;
try {
$client = new Client;
$res = $client->request('GET', $uri);
$statusCode = $res->getStatusCode();
$body = $res->getBody()->getContents();
Log::debug(sprintf('Result status code is %d', $statusCode));
Log::debug(sprintf('Result body is: %s', $body));
} catch (GuzzleException|Exception $e) {
// don't care about error
$body = sprintf('Guzzle exception: %s', $e->getMessage());
$body = sprintf('Guzzle exception: %s', $e->getMessage());
$statusCode = 500;
}
Log::debug(sprintf('Result status code is %d', $statusCode));
Log::debug(sprintf('Result body is: %s', $body));
$content = null;
if (200 !== $statusCode) {
@ -103,7 +105,7 @@ class FixerIOv2 implements ExchangeRateInterface
}
$exchangeRate->rate = $rate;
if ($rate !== 0.0) {
if (0.0 !== $rate) {
Log::debug('Rate is not zero, save it!');
$exchangeRate->save();
}

View File

@ -42,20 +42,27 @@ class RecurrenceDestroyService
try {
// delete all meta data
$recurrence->recurrenceMeta()->delete();
// delete all transactions.
/** @var RecurrenceTransaction $transaction */
foreach($recurrence->recurrenceTransactions as $transaction) {
$transaction->recurrenceTransactionMeta()->delete();
} catch (Exception $e) { // @codeCoverageIgnore
Log::info(sprintf('Could not delete recurrence meta: %s', $e->getMessage())); // @codeCoverageIgnore
}
// delete all transactions.
/** @var RecurrenceTransaction $transaction */
foreach ($recurrence->recurrenceTransactions as $transaction) {
$transaction->recurrenceTransactionMeta()->delete();
try {
$transaction->delete();
} catch (Exception $e) { // @codeCoverageIgnore
Log::info(sprintf('Could not delete recurrence transaction: %s', $e->getMessage())); // @codeCoverageIgnore
}
// delete all repetitions
$recurrence->recurrenceRepetitions()->delete();
}
// delete all repetitions
$recurrence->recurrenceRepetitions()->delete();
// delete recurrence
// delete recurrence
try {
$recurrence->delete();
} catch (Exception $e) { // @codeCoverageIgnore
Log::error(sprintf('Could not delete recurrence: %s', $e->getMessage())); // @codeCoverageIgnore
Log::info(sprintf('Could not delete recurrence: %s', $e->getMessage())); // @codeCoverageIgnore
}
}

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Services\Internal\Support;
use Exception;
use FireflyIII\Factory\AccountFactory;
use FireflyIII\Factory\AccountMetaFactory;
use FireflyIII\Factory\TransactionFactory;
@ -80,7 +81,7 @@ trait AccountServiceTrait
*
* @return null|string
*/
public function filterIban(?string $iban)
public function filterIban(?string $iban): ?string
{
if (null === $iban) {
return null;
@ -204,7 +205,9 @@ trait AccountServiceTrait
'reconciled' => false,
]
);
Log::notice(sprintf('Stored two transactions for new account, #%d and #%d', $one->id, $two->id));
if (null !== $one && null !== $two) {
Log::notice(sprintf('Stored two transactions for new account, #%d and #%d', $one->id, $two->id));
}
return $journal;
}
@ -214,6 +217,7 @@ trait AccountServiceTrait
* @param string $name
*
* @return Account
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function storeOpposingAccount(User $user, string $name): Account
{
@ -231,6 +235,7 @@ trait AccountServiceTrait
* @param array $data
*
* @return bool
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function updateIB(Account $account, array $data): bool
{
@ -313,14 +318,14 @@ trait AccountServiceTrait
* @param Account $account
* @param array $data
*/
public function updateMetaData(Account $account, array $data)
public function updateMetaData(Account $account, array $data): void
{
$fields = $this->validFields;
if ($account->accountType->type === AccountType::ASSET) {
$fields = $this->validAssetFields;
}
if ($account->accountType->type === AccountType::ASSET && $data['accountRole'] === 'ccAsset') {
if ($account->accountType->type === AccountType::ASSET && 'ccAsset' === $data['accountRole']) {
$fields = $this->validCCFields;
}
/** @var AccountMetaFactory $factory */
@ -346,8 +351,12 @@ trait AccountServiceTrait
Log::debug(sprintf('Updated meta-field "%s":"%s" for #%d ("%s") ', $field, $data[$field], $account->id, $account->name));
}
}
if (null !== $entry && isset($data[$field]) && \strlen((string)$data[$field]) === 0) {
$entry->delete();
if (null !== $entry && isset($data[$field]) && '' === (string)$data[$field]) {
try {
$entry->delete();
} catch (Exception $e) {
Log::debug(sprintf('Could not delete entry: %s', $e->getMessage()));
}
}
}
}
@ -360,7 +369,7 @@ trait AccountServiceTrait
*/
public function updateNote(Account $account, string $note): bool
{
if (0 === \strlen($note)) {
if ('' === $note) {
$dbNote = $account->notes()->first();
if (null !== $dbNote) {
$dbNote->delete();

View File

@ -67,7 +67,7 @@ trait BillServiceTrait
*/
public function updateNote(Bill $bill, string $note): bool
{
if (0 === \strlen($note)) {
if ('' === $note) {
$dbNote = $bill->notes()->first();
if (null !== $dbNote) {
$dbNote->delete(); // @codeCoverageIgnore

View File

@ -52,8 +52,10 @@ trait JournalServiceTrait
}
foreach ($data['tags'] as $string) {
if (\strlen($string) > 0) {
$tag = $factory->findOrCreate($string);
$set[] = $tag->id;
$tag = $factory->findOrCreate($string);
if (null !== $tag) {
$set[] = $tag->id;
}
}
}
$journal->tags()->sync($set);

View File

@ -205,7 +205,7 @@ trait RecurringTransactionTrait
$entry->value = implode(',', $tags);
$entry->save();
}
if (\count($tags) === 0) {
if (0 === \count($tags)) {
// delete if present
$recurrence->recurrenceMeta()->where('name', 'tags')->delete();
}

View File

@ -100,6 +100,7 @@ trait TransactionServiceTrait
* @param string|null $accountName
*
* @return Account|null
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account
{

View File

@ -41,17 +41,18 @@ class AccountUpdateService
* @param array $data
*
* @return Account
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function update(Account $account, array $data): Account
{
// update the account itself:
$account->name = $data['name'];
$account->active = $data['active'];
$account->virtual_balance = trim($data['virtualBalance']) === '' ? '0' : $data['virtualBalance'];
$account->virtual_balance = '' === trim($data['virtualBalance']) ? '0' : $data['virtualBalance'];
$account->iban = $data['iban'];
$account->save();
if (isset($data['currency_id']) && $data['currency_id'] === 0) {
if (isset($data['currency_id']) && 0 === $data['currency_id']) {
unset($data['currency_id']);
}

View File

@ -44,6 +44,7 @@ class JournalUpdateService
* @param array $data
*
* @return TransactionJournal
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function update(TransactionJournal $journal, array $data): TransactionJournal
{

View File

@ -25,7 +25,7 @@ namespace FireflyIII\Services\Internal\Update;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Recurrence;
use FireflyIII\Models\RecurrenceMeta;
use FireflyIII\Services\Internal\Support\RecurringTransactionTrait;
use FireflyIII\Services\Internal\Support\TransactionServiceTrait;
use FireflyIII\Services\Internal\Support\TransactionTypeTrait;

View File

@ -69,6 +69,7 @@ class TransactionUpdateService
* @param array $data
*
* @return Transaction
* @throws \FireflyIII\Exceptions\FireflyException
*/
public function update(Transaction $transaction, array $data): Transaction
{
@ -100,7 +101,7 @@ class TransactionUpdateService
$transaction->description = $description;
$transaction->amount = $amount;
$transaction->foreign_amount = null;
$transaction->transaction_currency_id = $currency->id;
$transaction->transaction_currency_id = null === $currency ? $transaction->transaction_currency_id : $currency->id;
$transaction->account_id = $account->id;
$transaction->reconciled = $data['reconciled'];
$transaction->save();
@ -108,11 +109,11 @@ class TransactionUpdateService
// set foreign currency
$foreign = $this->findCurrency($data['foreign_currency_id'], $data['foreign_currency_code']);
// set foreign amount:
if (null !== $data['foreign_amount'] && null !== $foreign) {
if (null !== $foreign && null !== $data['foreign_amount']) {
$this->setForeignCurrency($transaction, $foreign);
$this->setForeignAmount($transaction, $foreignAmount);
}
if (null === $data['foreign_amount'] || null === $foreign) {
if (null === $foreign && null === $data['foreign_amount']) {
$this->setForeignCurrency($transaction, null);
$this->setForeignAmount($transaction, null);
}

View File

@ -56,6 +56,8 @@ class PwndVerifierV2 implements Verifier
$client = new Client();
$res = $client->request('GET', $uri, $opt);
} catch (GuzzleException|Exception $e) {
Log::error(sprintf('Could not verify password security: %s', $e->getMessage()));
return true;
}
Log::debug(sprintf('Status code returned is %d', $res->getStatusCode()));
@ -63,7 +65,7 @@ class PwndVerifierV2 implements Verifier
return true;
}
$strpos = stripos($res->getBody()->getContents(), $rest);
if ($strpos === false) {
if (false === $strpos) {
Log::debug(sprintf('%s was not found in result body. Return true.', $rest));
return true;

View File

@ -42,17 +42,17 @@ class Attempt extends SpectreObject
/** @var Carbon */
private $consentGivenAt;
/** @var array */
private $consentTypes = [];
private $consentTypes;
/** @var Carbon */
private $createdAt;
/** @var array */
private $customFields = [];
private $customFields;
/** @var bool */
private $dailyRefresh;
/** @var string */
private $deviceType;
/** @var array */
private $excludeAccounts = [];
private $excludeAccounts;
/** @var Carbon */
private $failAt;
/** @var string */
@ -60,7 +60,7 @@ class Attempt extends SpectreObject
/** @var string */
private $failMessage;
/** @var array */
private $fetchScopes = [];
private $fetchScopes;
/** @var bool */
private $finished;
/** @var bool */
@ -80,7 +80,7 @@ class Attempt extends SpectreObject
/** @var bool */
private $showConsentInformation;
/** @var array */
private $stages = [];
private $stages;
/** @var bool */
private $storeCredentials;
/** @var Carbon */

View File

@ -121,7 +121,7 @@ class Amount
$locale = explode(',', (string)trans('config.locale'));
$locale = array_map('trim', $locale);
setlocale(LC_MONETARY, $locale);
$float = round($amount, 12);
$float = round($amount, $format->decimal_places);
$info = localeconv();
$formatted = number_format($float, (int)$format->decimal_places, $info['mon_decimal_point'], $info['mon_thousands_sep']);