itemsCollection = $itemsCollection; } /** * @param Request $request * @return JsonResponse */ public function search(Request $request): JsonResponse { return response()->json([ 'item' => $this->itemsCollection->findItem($request->input('query')), ]); } /** * @param string $id * @return JsonResponse */ public function getItem(string $id): JsonResponse { try { return response()->json([ 'item' => $this->itemsCollection->getItemById($id), ]); } catch (Throwable $exception) { Log::error($exception->getMessage()); Log::error($exception->getTraceAsString()); return response()->json([ 'error' => 'Item not found.', ], Response::HTTP_NOT_FOUND); } } }