From 7dbacd43062e9ad53c2b18482f69ddd80e8a3ca3 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 27 Jun 2023 15:13:20 +1000 Subject: [PATCH] Add expense categories --- app/Transformers/ExpenseTransformer.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app/Transformers/ExpenseTransformer.php b/app/Transformers/ExpenseTransformer.php index f703da58058a..404e71a2f319 100644 --- a/app/Transformers/ExpenseTransformer.php +++ b/app/Transformers/ExpenseTransformer.php @@ -11,12 +11,14 @@ namespace App\Transformers; -use App\Models\Document; -use App\Models\Expense; use App\Models\Vendor; +use App\Models\Expense; +use App\Models\Document; +use App\Models\ExpenseCategory; use App\Utils\Traits\MakesHash; -use Illuminate\Database\Eloquent\SoftDeletes; use League\Fractal\Resource\Item; +use Illuminate\Database\Eloquent\SoftDeletes; +use App\Transformers\ExpenseCategoryTransformer; /** * class ExpenseTransformer. @@ -36,6 +38,7 @@ class ExpenseTransformer extends EntityTransformer protected $availableIncludes = [ 'client', 'vendor', + 'category', ]; public function includeDocuments(Expense $expense) @@ -56,6 +59,17 @@ class ExpenseTransformer extends EntityTransformer return $this->includeItem($expense->client, $transformer, Client::class); } + public function includeCategory(Expense $expense): ?Item + { + $transformer = new ExpenseCategoryTransformer($this->serializer); + + if (!$expense->category) { + return null; + } + + return $this->includeItem($expense->category, $transformer, ExpenseCategory::class); + } + public function includeVendor(Expense $expense): ?Item { $transformer = new VendorTransformer($this->serializer);