folderRepository->filter([ 'page' => $request->get('page') ?? 1 ], ['datacenter.vCenter']); $title = 'List all folder'; return view('admin.package.folder.index', compact('folders', 'title')); } public function sync(SyncFolder $syncFolder) { dispatch($syncFolder)->delay(now()->addSeconds(5)); return back()->with('success', 'The process is being established, please wait'); } public function create() { $title = 'Add Folder'; return view('admin.package.folder.add', compact('title')); } public function store(FolderRequest $request) { $request->validated(); $datacenter = $this->datacenterRepository->find($request->get('module_datacenter_id')); if (! $datacenter) { return back()->withErrors('Invalid Request'); } $isCreated = $this->folderRepository->findBy('folder', $request->get('folder')); if ($isCreated) { return back()->withErrors('The Folder ID already exists'); } DB::beginTransaction(); try { $this->folderRepository->create($request->all()); DB::commit(); } catch (Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return redirect()->route('package.folder.index')->with('success', 'Add new Folder successfully'); } public function edit(int $id = 0) { $folder = $this->folderRepository->findWithRelationships($id, ['datacenter']); if (! $folder) { return back()->withErrors('Invalid Request'); } $title = 'Edit Folder'; return view('admin.package.folder.edit', compact('title', 'folder')); } public function update(int $id, FolderRequest $request) { $folder = $this->folderRepository->find($id); if (! $folder) { return redirect()->route('package.folder.index')->withErrors('Invalid request.'); } $request->validated(); $datacenter = $this->datacenterRepository->find($request->get('module_datacenter_id')); if (! $datacenter) { return back()->withErrors('Invalid Request'); } if ($request->get('folder') !== $folder->folder) { $isCreated = $this->folderRepository->findBy('folder', $request->get('folder')); if ($isCreated) { return back()->withErrors('The Folder ID already exists'); } } DB::beginTransaction(); try { $this->folderRepository->update($id, $request->all()); DB::commit(); } catch (Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return redirect()->route('package.folder.index')->with('success', 'Updated successfully'); } public function destroy(int $id = 0) { $datastore = $this->folderRepository->find($id); if (! $datastore) { return back()->withErrors('Invalid request.'); } DB::beginTransaction(); try { $this->folderRepository->delete($id); DB::commit(); } catch (Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return redirect()->route('package.folder.index')->with('success', 'Deleted successfully!'); } }