alert = $alert; $this->repository = $repository; $this->creationService = $creationService; $this->deletionService = $deletionService; $this->updateService = $updateService; } /** * Return the mount overview page. * * @return \Illuminate\View\View */ public function index() { return view('admin.mounts.index', [ 'mounts' => $this->repository->getAllWithDetails(), ]); } /** * Return the mount view page. * * @param string $id * @return \Illuminate\View\View * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function view($id) { return view('admin.mounts.view', [ 'mount' => $this->repository->getWithRelations($id), ]); } /** * Handle request to create new mount. * * @param \Pterodactyl\Http\Requests\Admin\MountFormRequest $request * @return \Illuminate\Http\RedirectResponse * * @throws \Throwable */ public function create(MountFormRequest $request) { $mount = $this->creationService->handle($request->normalize()); $this->alert->success('Mount was created successfully.')->flash(); return redirect()->route('admin.mounts.view', $mount->id); } /** * Handle request to update or delete location. * * @param \Pterodactyl\Http\Requests\Admin\MountFormRequest $request * @param \Pterodactyl\Models\Mount $mount * @return \Illuminate\Http\RedirectResponse * * @throws \Throwable */ public function update(MountFormRequest $request, Mount $mount) { if ($request->input('action') === 'delete') { return $this->delete($mount); } $this->updateService->handle($mount->id, $request->normalize()); $this->alert->success('Mount was updated successfully.')->flash(); return redirect()->route('admin.mounts.view', $mount->id); } /** * Delete a location from the system. * * @param \Pterodactyl\Models\Mount $mount * @return \Illuminate\Http\RedirectResponse * * @throws \Exception */ public function delete(Mount $mount) { try { $this->deletionService->handle($mount->id); return redirect()->route('admin.mounts'); } catch (DisplayException $ex) { $this->alert->danger($ex->getMessage())->flash(); } return redirect()->route('admin.mounts.view', $mount->id); } }