has('q')) { $searchers = []; } else { $searchers = (new SearchersStorage())->all(); } if (request()->wantsJson()) { return response()->json([ 'searchers' => $searchers, ], 200); } return view('pages.searchers.index', [ 'searchers' => $searchers, ]); } public function create() { return view('pages.searchers.create'); } public function store() { request()->validate([ 'name' => 'required', 'rows' => 'required|array', 'rows.*' => 'array', ]); try { $factory = new SearcherFactory(request()->get('name'), request()->get('rows')); $factory->create(); return response()->json([ 'status' => 'success', ], 200); } catch (\Exception $exception) { return response()->json([ 'status' => 'fail', 'message' => $exception->getMessage(), ], 400); } } public function show($id) { $searchersStorage = new SearchersStorage(); try { if ( ! $searchersStorage->has($id)) { abort(404); } return view('pages.searchers.show', [ 'searcher' => $searchersStorage->get($id), ]); } catch (\Exception $exception) { abort(400); } } public function update($id) { } }