Update API and transaction components.

This commit is contained in:
James Cole
2019-03-30 07:09:52 +01:00
parent 484ed6a585
commit 5b1fb5354e
18 changed files with 406 additions and 312 deletions

View File

@@ -118,6 +118,25 @@ class GroupCollector implements GroupCollectorInterface
];
}
/**
* Return the transaction journals without group information. Is useful in some instances.
*
* @return array
*/
public function getExtractedJournals(): array
{
$selection = $this->getGroups();
$return = new Collection;
/** @var array $group */
foreach ($selection as $group) {
foreach ($group['transactions'] as $journalId => $journal) {
$return[$journalId] = $journal;
}
}
return $return;
}
/**
* Return the groups.
*
@@ -339,6 +358,18 @@ class GroupCollector implements GroupCollectorInterface
return $this;
}
/**
* Limit the search to one specific transaction group.
*
* @param TransactionGroup $transactionGroup
*
* @return GroupCollectorInterface
*/
public function setTransactionGroup(TransactionGroup $transactionGroup): GroupCollectorInterface
{
$this->query->where('transaction_groups.id', $transactionGroup->id);
}
/**
* Limit the included transaction types.
*

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\Budget;
use FireflyIII\Models\Category;
use FireflyIII\Models\Tag;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\User;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
@@ -38,6 +39,13 @@ use Illuminate\Support\Collection;
*/
interface GroupCollectorInterface
{
/**
* Return the transaction journals without group information. Is useful in some instances.
*
* @return array
*/
public function getExtractedJournals(): array;
/**
* Return the groups.
*
@@ -106,6 +114,15 @@ interface GroupCollectorInterface
*/
public function setCurrency(TransactionCurrency $currency): GroupCollectorInterface;
/**
* Limit the result to a set of specific journals.
*
* @param array $journalIds
*
* @return GroupCollectorInterface
*/
public function setJournalIds(array $journalIds): GroupCollectorInterface;
/**
* Limit the number of returned entries.
*
@@ -124,15 +141,6 @@ interface GroupCollectorInterface
*/
public function setPage(int $page): GroupCollectorInterface;
/**
* Limit the result to a set of specific journals.
*
* @param array $journalIds
*
* @return GroupCollectorInterface
*/
public function setJournalIds(array $journalIds): GroupCollectorInterface;
/**
* Set the start and end time of the results to return.
*
@@ -152,6 +160,15 @@ interface GroupCollectorInterface
*/
public function setTag(Tag $tag): GroupCollectorInterface;
/**
* Limit the search to one specific transaction group.
*
* @param TransactionGroup $transactionGroup
*
* @return GroupCollectorInterface
*/
public function setTransactionGroup(TransactionGroup $transactionGroup): GroupCollectorInterface;
/**
* Limit the included transaction types.
*