conditionally load wallet in company resource

This commit is contained in:
Omair Saleh
2022-09-30 04:20:49 +08:00
parent e45d9c8420
commit 6ad167f73e
4 changed files with 24 additions and 4 deletions
@@ -0,0 +1,20 @@
<?php
namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
class WithWallets implements Filter
{
/**
* @param Builder $builder
* @param $value
* @return mixed
*/
public static function apply(Builder $builder, $value)
{
return $builder->with('wallets');
}
}
@@ -52,10 +52,10 @@ class FetchCompanyLogic extends AbstractControllerLogic
{
$this->canFetchCompany->passes();
$query = $this->fetchesCompany->execute(['id' => $request->route('id'), 'with_bookings' => true]);
$query = $this->fetchesCompany->execute(['id' => $request->route('id'), 'with_bookings' => true, 'with_wallets' => true]);
return $this->resourceResponse(new CompanyResource($query));
}
}
}
+1 -1
View File
@@ -26,7 +26,7 @@ class BookingResource extends JsonResource
{
return [
'id' => $this->id,
// 'company' => new CompanyResource($this->company),
'company' => new CompanyResource($this->company),
'bank' => new BankResource($this->bank),
'service' => new ServiceTypeResource($this->service),
'marking' => $this->marking,
+1 -1
View File
@@ -61,7 +61,7 @@ class CompanyResource extends JsonResource
],
'segments' => SegmentResource::collection($this->segments),
'services' => (new FetchesCompanyServices())->getServices($this->servicesConfigurations()),
'wallet' => new WalletResource($this->wallets()->first()),
'wallet' => $this->whenLoaded('wallets', new WalletResource($this->wallets()->first()), ''),
'created_at' => $this->created_at->format('d-m-Y'),
$this->mergeWhen($this->business_type === BusinessType::CURRENCY_VENDOR, [
'currencies' => $segment ? CurrencyResource::collection(Currency::whereIn('id', $segment->detail->currencies)->get()) : [],