From 1e00d7cb162d6b6a132ef69ceb4d28c84f1c78aa Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 25 Aug 2019 16:27:17 +0200 Subject: [PATCH] Merge category and budget info with the transaction array #2483 --- app/Transformers/RecurrenceTransformer.php | 23 ++++++++-------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/app/Transformers/RecurrenceTransformer.php b/app/Transformers/RecurrenceTransformer.php index 3bb01df867..44ffe36dc9 100644 --- a/app/Transformers/RecurrenceTransformer.php +++ b/app/Transformers/RecurrenceTransformer.php @@ -207,40 +207,33 @@ class RecurrenceTransformer extends AbstractTransformer /** * @param RecurrenceTransaction $transaction + * @param array $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 */ foreach ($transaction->recurrenceTransactionMeta as $transactionMeta) { - $transactionMetaArray = [ - 'name' => $transactionMeta->name, - 'value' => $transactionMeta->value, - ]; switch ($transactionMeta->name) { case 'category_name': $category = $this->factory->findOrCreate(null, $transactionMeta->value); if (null !== $category) { - $transactionMetaArray['category_id'] = $category->id; - $transactionMetaArray['category_name'] = $category->name; + $array['category_id'] = $category->id; + $array['category_name'] = $category->name; } break; case 'budget_id': $budget = $this->budgetRepos->findNull((int)$transactionMeta->value); if (null !== $budget) { - $transactionMetaArray['budget_id'] = $budget->id; - $transactionMetaArray['budget_name'] = $budget->name; + $array['budget_id'] = $budget->id; + $array['budget_name'] = $budget->name; } break; } - // store transaction meta data in transaction - $return[] = $transactionMetaArray; } - return $return; + return $array; } /** @@ -315,8 +308,8 @@ class RecurrenceTransformer extends AbstractTransformer 'amount' => $amount, 'foreign_amount' => $foreignAmount, 'description' => $transaction->description, - 'meta' => $this->getTransactionMeta($transaction), ]; + $transactionArray = $this->getTransactionMeta($transaction, $transactionArray); if (null !== $transaction->foreign_currency_id) { $transactionArray['foreign_currency_code'] = $transaction->foreignCurrency->code; $transactionArray['foreign_currency_symbol'] = $transaction->foreignCurrency->symbol;