DeliveryPackingListTransformer transformer updated

This commit is contained in:
Martin Kiragu
2023-04-24 21:08:29 +03:00
parent 02f7adb1e9
commit 4bee415d2d
3 changed files with 90 additions and 30 deletions
@@ -14,7 +14,7 @@ use App\Classes\ValueObjects\Constants\OrderRoleTypes;
use App\Classes\ValueObjects\Constants\PackingListType;
use App\Http\Resources\DeliverPackingListResource;
use App\Transformers\DeliveryPackingListTransformer;
use App\Transformers\DeliverPackingListTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -0,0 +1,78 @@
<?php
namespace App\Transformers;
use App\Models\PackingList;
use League\Fractal\Resource\Collection;
use League\Fractal\Resource\Item;
use League\Fractal\TransformerAbstract;
class DeliverPackingListTransformer extends TransformerAbstract
{
/**
* List of resources to automatically include
*
* @var array
*/
protected $defaultIncludes = [
'transport',
'packing_list',
'company'
];
/**
* List of resources possible to include
*
* @var array
*/
protected $availableIncludes = [
//
];
/**
* A Fractal transformer.
*
* @param PackingList $list
* @return array
*/
public function transform(PackingList $list): array
{
return [
'id' => $this->$list,
'claimant_id' => $list->claimant_id,
'reference' => $list->reference,
'status' => $list->status,
];
}
/**
* include transport
* @param PackingList $list
* @return Item
*/
public function includeTransport(PackingList $list): Item
{
return $this->item($list->transports()->first(), new TransportTransformer);
}
/**
* add packing list
* @param PackingList $list
* @return Collection
*/
public function includePackingList(PackingList $list): Collection
{
return $this->collection($list->packing_list_owner(), new PackageListTransformer);
}
/**
* add company
* @param PackingList $list
* @return Item
*/
public function includeCompany(PackingList $list): Item
{
return $this->item($list->owner(), new CompanyModuleTransformer);
}
}
@@ -3,7 +3,6 @@
namespace App\Transformers;
use App\Models\PackingList;
use League\Fractal\Resource\Collection;
use League\Fractal\Resource\Item;
use League\Fractal\TransformerAbstract;
@@ -15,10 +14,7 @@ class DeliveryPackingListTransformer extends TransformerAbstract
* @var array
*/
protected $defaultIncludes = [
'transport',
'packing_list',
'company'
'transport'
];
/**
@@ -33,46 +29,32 @@ class DeliveryPackingListTransformer extends TransformerAbstract
/**
* A Fractal transformer.
*
* @param PackingList $list
* @return array
*/
public function transform(PackingList $list): array
{
$package = $list->packages()->first();
return [
'id' => $this->$list,
'id' => $list->id,
'claimant_id' => $list->claimant_id,
'reference' => $list->reference,
'status' => $list->status,
'type' => $package->type,
'description' => $package->description,
'weight' => (float)$package->weight,
'quantity' => (float)$package->quantity,
];
}
/**
* include transport
* Include Transport
*
* @param PackingList $list
* @return Item
*/
public function includeTransport(PackingList $list): Item
{
return $this->item($list->transports()->first(), new TransportTransformer);
}
/**
* add packing list
* @param PackingList $list
* @return Collection
*/
public function includePackingList(PackingList $list): Collection
{
return $this->collection($list->packing_list_owner(), new PackageListTransformer);
}
/**
* add company
* @param PackingList $list
* @return Item
*/
public function includeCompany(PackingList $list): Item
{
return $this->item($list->owner(), new CompanyModuleTransformer);
return $this->item($list->transports()->first(), new TransportTransformer());
}
}