Catch null pointers

This commit is contained in:
James Cole 2020-02-28 18:56:27 +01:00
parent ec335ae88c
commit 2ba6ffccbc
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
2 changed files with 11 additions and 0 deletions

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\Journal;
use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
@ -386,6 +387,9 @@ class JournalRepository implements JournalRepositoryInterface
{
/** @var Transaction $transaction */
$transaction = $journal->transactions()->with('account')->where('amount', '<', 0)->first();
if (null === $transaction) {
throw new FireflyException(sprintf('Your administration is broken. Transaction journal #%d has no source transaction.', $journal->id));
}
return $transaction->account;
}
@ -397,6 +401,9 @@ class JournalRepository implements JournalRepositoryInterface
{
/** @var Transaction $transaction */
$transaction = $journal->transactions()->with('account')->where('amount', '>', 0)->first();
if (null === $transaction) {
throw new FireflyException(sprintf('Your administration is broken. Transaction journal #%d has no destination transaction.', $journal->id));
}
return $transaction->account;
}

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\Journal;
use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
@ -114,7 +115,9 @@ interface JournalRepositoryInterface
* Returns the source account of the journal.
*
* @param TransactionJournal $journal
*
* @return Account
* @throws FireflyException
*/
public function getSourceAccount(TransactionJournal $journal): Account;
@ -123,6 +126,7 @@ interface JournalRepositoryInterface
*
* @param TransactionJournal $journal
* @return Account
* @throws FireflyException
*/
public function getDestinationAccount(TransactionJournal $journal): Account;