Files
shipping-portal/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesLogic.php
T
2025-04-03 07:18:31 +08:00

82 lines
2.7 KiB
PHP

<?php
namespace App\Classes\Modules\Orders\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Orders\Services\FetchesOrder;
use App\Classes\Modules\Orders\Standards\Rules\CanFetchOrder;
use App\Http\Resources\OrderPackagesBaseResource;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
/**
* @deprecated This class is deprecated and should not be used.
* Use `FetchOrderPackagesV2Logic` instead or write a new one based on FetchOrderPackagesV2Logic
*/
class FetchOrderPackagesLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'Retrieved Order Packages',
'message' => 'You have successfully retrieved an order packages'
];
}
/** @var CanFetchOrder */
private $canFetchOrder;
/** @var FetchesOrder */
private $fetchesOrder;
/**
* FetchOrderPackagesLogic constructor.
* @param CanFetchOrder $canFetchOrder
* @param FetchesOrder $fetchesOrder
*/
public function __construct(CanFetchOrder $canFetchOrder, FetchesOrder $fetchesOrder)
{
$this->canFetchOrder = $canFetchOrder;
$this->fetchesOrder = $fetchesOrder;
}
/**
* @param Request $request
* @return JsonResponse
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function logic(Request $request) : JsonResponse
{
$this->canFetchOrder->passes();
$query = $this->fetchesOrder->execute(['reference' => $request->route('id'), 'with_packing_lists' => true]);
$filters = json_decode($request->input('filters'), true);
if(isset($filters['include_packages_origin_warehouse'])){
$query->include_packages_origin_warehouse = $filters['include_packages_origin_warehouse'];
}
if(isset($filters['include_packages_in_transit'])){
$query->include_packages_in_transit = $filters['include_packages_in_transit'];
}
if(isset($filters['include_packages_destination_warehouse'])){
$query->include_packages_destination_warehouse = $filters['include_packages_destination_warehouse'];
}
if(isset($filters['include_packages_delivery'])){
$query->include_packages_delivery = $filters['include_packages_delivery'];
}
if(isset($filters['include_packages_received'])){
$query->include_packages_received = $filters['include_packages_received'];
}
return $this->resourceResponse(new OrderPackagesBaseResource($query));
}
}