'Retrieved Order Tracking', 'message' => 'You have successfully retrieved order tracking info' ]; } /** @var ListsOrderTracking */ private $listsOrderTracking; /** * ListOrderTrackingLogic constructor. * @param ListsOrderTracking $listsOrderTracking */ public function __construct(ListsOrderTracking $listsOrderTracking) { $this->listsOrderTracking = $listsOrderTracking; } public function logic(Request $request) : JsonResponse { $query = null; $filters = json_decode($request->input('filters'), true); $trackingNo = $filters['tracking_no']; if (preg_match('/^\d{9}$/', $trackingNo)) { $order = Order::where('reference', $trackingNo)->first(); if($order){ $packingList = $order->packingLists()->first(); $trackingNo = $packingList->reference; Artisan::call('process-yd-by-traking-no-data-command', [ 'trackingNo' => $trackingNo ]); $query = $this->listsOrderTracking->execute(array_merge($this->listsOrderTracking->deserializeFilters($request->input('filters')), ['tracking_no' => $trackingNo])); } } else{ $query = $this->listsOrderTracking->execute($this->listsOrderTracking->deserializeFilters($request->input('filters'))); } return $this->collectionResponse(OrderTrackingResource::collection($query)); } }