Merge category and budget info with the transaction array #2483

This commit is contained in:
James Cole
2019-08-25 16:27:17 +02:00
parent 6bc5794dfd
commit 1e00d7cb16

View File

@@ -207,40 +207,33 @@ class RecurrenceTransformer extends AbstractTransformer
/** /**
* @param RecurrenceTransaction $transaction * @param RecurrenceTransaction $transaction
* @param array $array
* *
* @return array * @return array
*/ */
private function getTransactionMeta(RecurrenceTransaction $transaction): array private function getTransactionMeta(RecurrenceTransaction $transaction, array $array): array
{ {
$return = [];
// get meta data for each transaction:
/** @var RecurrenceTransactionMeta $transactionMeta */ /** @var RecurrenceTransactionMeta $transactionMeta */
foreach ($transaction->recurrenceTransactionMeta as $transactionMeta) { foreach ($transaction->recurrenceTransactionMeta as $transactionMeta) {
$transactionMetaArray = [
'name' => $transactionMeta->name,
'value' => $transactionMeta->value,
];
switch ($transactionMeta->name) { switch ($transactionMeta->name) {
case 'category_name': case 'category_name':
$category = $this->factory->findOrCreate(null, $transactionMeta->value); $category = $this->factory->findOrCreate(null, $transactionMeta->value);
if (null !== $category) { if (null !== $category) {
$transactionMetaArray['category_id'] = $category->id; $array['category_id'] = $category->id;
$transactionMetaArray['category_name'] = $category->name; $array['category_name'] = $category->name;
} }
break; break;
case 'budget_id': case 'budget_id':
$budget = $this->budgetRepos->findNull((int)$transactionMeta->value); $budget = $this->budgetRepos->findNull((int)$transactionMeta->value);
if (null !== $budget) { if (null !== $budget) {
$transactionMetaArray['budget_id'] = $budget->id; $array['budget_id'] = $budget->id;
$transactionMetaArray['budget_name'] = $budget->name; $array['budget_name'] = $budget->name;
} }
break; break;
} }
// store transaction meta data in transaction
$return[] = $transactionMetaArray;
} }
return $return; return $array;
} }
/** /**
@@ -315,8 +308,8 @@ class RecurrenceTransformer extends AbstractTransformer
'amount' => $amount, 'amount' => $amount,
'foreign_amount' => $foreignAmount, 'foreign_amount' => $foreignAmount,
'description' => $transaction->description, 'description' => $transaction->description,
'meta' => $this->getTransactionMeta($transaction),
]; ];
$transactionArray = $this->getTransactionMeta($transaction, $transactionArray);
if (null !== $transaction->foreign_currency_id) { if (null !== $transaction->foreign_currency_id) {
$transactionArray['foreign_currency_code'] = $transaction->foreignCurrency->code; $transactionArray['foreign_currency_code'] = $transaction->foreignCurrency->code;
$transactionArray['foreign_currency_symbol'] = $transaction->foreignCurrency->symbol; $transactionArray['foreign_currency_symbol'] = $transaction->foreignCurrency->symbol;