Add vendors and clients as available include for recurring expenses

This commit is contained in:
David Bomba 2022-12-19 12:57:21 +11:00
parent 66ba48bb49
commit 7fc794bfde

View File

@ -15,6 +15,7 @@ use App\Models\Document;
use App\Models\RecurringExpense; use App\Models\RecurringExpense;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use League\Fractal\Resource\Item;
/** /**
* class RecurringExpenseTransformer. * class RecurringExpenseTransformer.
@ -33,6 +34,8 @@ class RecurringExpenseTransformer extends EntityTransformer
*/ */
protected $availableIncludes = [ protected $availableIncludes = [
'documents', 'documents',
'client',
'vendor',
]; ];
public function includeDocuments(RecurringExpense $recurring_expense) public function includeDocuments(RecurringExpense $recurring_expense)
@ -42,6 +45,28 @@ class RecurringExpenseTransformer extends EntityTransformer
return $this->includeCollection($recurring_expense->documents, $transformer, Document::class); return $this->includeCollection($recurring_expense->documents, $transformer, Document::class);
} }
public function includeClient(RecurringExpense $recurring_expense): ?Item
{
$transformer = new ClientTransformer($this->serializer);
if (!$recurring_expense->client) {
return null;
}
return $this->includeItem($recurring_expense->client, $transformer, Client::class);
}
public function includeVendor(RecurringExpense $recurring_expense): ?Item
{
$transformer = new VendorTransformer($this->serializer);
if (!$recurring_expense->vendor) {
return null;
}
return $this->includeItem($recurring_expense->vendor, $transformer, Vendor::class);
}
/** /**
* @param RecurringExpense $recurring_expense * @param RecurringExpense $recurring_expense
* *