'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 OrderPackagesDeprecatedResource($query)); } }