'Retrieved PackingLists', 'message' => 'You have successfully retrieved a list of PackingLists' ]; } /** @var CanListPackingLists */ private $canListPackingLists; /** @var ListsPackingLists */ private $listsPackingLists; /** * ListPackingListsLogic constructor. * @param CanListPackingLists $canListPackingLists * @param ListsPackingLists $listsPackingLists */ public function __construct(CanListPackingLists $canListPackingLists, ListsPackingLists $listsPackingLists) { $this->canListPackingLists = $canListPackingLists; $this->listsPackingLists = $listsPackingLists; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $this->canListPackingLists->passes(); $query = $this->listsPackingLists->execute($this->listsPackingLists->deserializeFilters($request->input('filters'))); $data = json_encode($request->input('storages')); Log::info("ListPackingListsLogic storages A"); // if($request->input('storages')){ // Log::info("ListPackingListsLogic storages B"); // foreach ($query->items() as $item) { // $item['storages'] = $request->input('storages'); // } // return $this->collectionResponse(PackingListWithStorageResource::collection($query)); // } $filters = json_decode($request->input('filters'), true); $useNew = false; foreach ($query->items() as $item) { //from middleware if($request->input('storages')){ $item['storages'] = $request->input('storages'); } //from front end component if(isset($filters['include_packages'])){ //'include_packages' filter is an attempt to reduce the request-response time to only load basic information unless explicitly indicated to be included $item['include_packages'] = $filters['include_packages']; $useNew = true; } if(isset($filters['include_receive_packing_list'])){ //'include_receive_packing_list' filter is an attempt to reduce the request-response time to only load basic information unless explicitly indicated to be included $item['include_receive_packing_list'] = $filters['include_receive_packing_list']; $useNew = true; } if(isset($filters['include_shipping_transaction'])){ $item['include_shipping_transaction'] = $filters['include_shipping_transaction']; $useNew = true; } if(isset($filters['include_suspended_invoice'])){ $item['include_suspended_invoice'] = $filters['include_suspended_invoice']; $useNew = true; } } if($useNew){ return $this->collectionResponse(PackingListBaseResource::collection($query)); } //Fallback return $this->collectionResponse(PackingListResource::collection($query)); } }