get('project'); $websiteTranslations = $request->get('websiteTranslations'); $result = $this->documentationService->defaultVersion($project, $request->user()); if ($result->isError()) { if ($result->getCode() === 404) { return view('site.projects.documentation.no-default-version', [ 'project' => $project, 'websiteTranslations' => $websiteTranslations, ]); } $this->errors($result); } $url = \App\Enums\Site\ProjectSection::DocumentationVersion->url($project, $websiteTranslations->getLanguage(), ['version' => $result->getVersion()->slug]); /** * 302 redirect because the documentation version can change at any time. */ return redirect($url, 302); } public function index(Request $request): View { $documentation = new Documentation( project: $request->get('project'), version: $request->get('version'), websiteTranslations: $request->get('websiteTranslations'), user: $request->user(), ); $result = $this->documentationService->index($documentation); if ($result->isError()) { $this->errors($result); } return view('site.projects.documentation.index', $result->getData()); } public function category(string $slug, Request $request): View { $documentation = new Documentation( project: $request->get('project'), version: $request->get('version'), websiteTranslations: $request->get('websiteTranslations'), user: $request->user(), ); $result = $this->documentationService->category($slug, $documentation); if ($result->isError()) { $this->errors($result); } if ($result->isTranslation()) { return $this->viewPageWithoutTranslation($result); } return view('site.projects.documentation.category', $result->getData()); } public function view(string $slug, Request $request): View { $documentation = new Documentation( project: $request->get('project'), version: $request->get('version'), websiteTranslations: $request->get('websiteTranslations'), user: $request->user(), ); $result = $this->documentationService->view($slug, $documentation); if ($result->isError()) { $this->errors($result); } if ($result->isTranslation()) { return $this->viewPageWithoutTranslation($result); } return view('site.projects.documentation.view', $result->getData()); } }