mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-05-03 20:56:21 +00:00
Expand test coverage.
This commit is contained in:
@@ -24,6 +24,7 @@ namespace FireflyIII\Repositories\Journal;
|
||||
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\Note;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionType;
|
||||
@@ -189,6 +190,16 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
* @return Note|null
|
||||
*/
|
||||
public function getNote(TransactionJournal $journal): ?Note
|
||||
{
|
||||
return $journal->notes()->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection
|
||||
*/
|
||||
|
||||
@@ -23,8 +23,10 @@ declare(strict_types=1);
|
||||
namespace FireflyIII\Repositories\Journal;
|
||||
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\Note;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionJournalLink;
|
||||
use FireflyIII\Models\TransactionType;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Support\Collection;
|
||||
@@ -52,6 +54,13 @@ interface JournalRepositoryInterface
|
||||
*/
|
||||
public function countTransactions(TransactionJournal $journal): int;
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
* @return Note|null
|
||||
*/
|
||||
public function getNote(TransactionJournal $journal): ?Note;
|
||||
|
||||
/**
|
||||
* Deletes a journal.
|
||||
*
|
||||
|
||||
@@ -123,7 +123,7 @@ trait UpdateJournalsTrait
|
||||
|
||||
/**
|
||||
* Update tags.
|
||||
*
|
||||
*
|
||||
* @param TransactionJournal $journal
|
||||
* @param array $array
|
||||
*
|
||||
|
||||
@@ -22,11 +22,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Repositories\LinkType;
|
||||
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Models\LinkType;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionJournalLink;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Support\Collection;
|
||||
use Log;
|
||||
|
||||
/**
|
||||
* Class LinkTypeRepository.
|
||||
@@ -157,6 +159,42 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface
|
||||
return $linkType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Store link between two journals.
|
||||
*
|
||||
* @param array $information
|
||||
* @param TransactionJournal $left
|
||||
* @param TransactionJournal $right
|
||||
*
|
||||
* @return mixed
|
||||
* @throws FireflyException
|
||||
*/
|
||||
public function storeLink(array $information, TransactionJournal $left, TransactionJournal $right): TransactionJournalLink
|
||||
{
|
||||
$linkType = $this->find(intval($information['link_type_id']) ?? 0);
|
||||
if (is_null($linkType->id)) {
|
||||
throw new FireflyException(sprintf('Link type #%d cannot be resolved to an actual link type', intval($information['link_type_id']) ?? 0));
|
||||
}
|
||||
$link = new TransactionJournalLink;
|
||||
$link->linkType()->associate($linkType);
|
||||
if ('inward' === $information['direction']) {
|
||||
Log::debug(sprintf('Link type is inwards ("%s"), so %d is source and %d is destination.', $linkType->inward, $left->id, $right->id));
|
||||
$link->source()->associate($left);
|
||||
$link->destination()->associate($right);
|
||||
}
|
||||
|
||||
if ('outward' === $information['direction']) {
|
||||
Log::debug(sprintf('Link type is inwards ("%s"), so %d is source and %d is destination.', $linkType->outward, $right->id, $left->id));
|
||||
$link->source()->associate($right);
|
||||
$link->destination()->associate($left);
|
||||
}
|
||||
|
||||
$link->comment = $link['comments'] ?? null;
|
||||
$link->save();
|
||||
|
||||
return $link;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournalLink $link
|
||||
*
|
||||
|
||||
@@ -92,6 +92,17 @@ interface LinkTypeRepositoryInterface
|
||||
*/
|
||||
public function store(array $data): LinkType;
|
||||
|
||||
/**
|
||||
* Store link between two journals.
|
||||
*
|
||||
* @param array $information
|
||||
* @param TransactionJournal $left
|
||||
* @param TransactionJournal $right
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function storeLink(array $information, TransactionJournal $left, TransactionJournal $right): TransactionJournalLink;
|
||||
|
||||
/**
|
||||
* @param TransactionJournalLink $link
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user