getPageBySlug(StaticPageSlug::LEGALS); return view('fo.pages.legal-notice', compact( 'page' )); } public function terms(): View { $page = $this->getPageBySlug(StaticPageSlug::TERMS); return view('fo.pages.terms', compact( 'page' )); } public function privacy(): View { $page = $this->getPageBySlug(StaticPageSlug::PRIVACY); return view('fo.pages.privacy', compact( 'page' )); } public function faq(GetFaqsQuery $getFaqsQuery): View { $page = $this->getPageBySlug(StaticPageSlug::FAQ); $faqs = $this->executor->execute( $getFaqsQuery, new QueryInputEmpty() ); return view('fo.pages.faq', compact( 'faqs', 'page' )); } private function getPageBySlug(StaticPageSlug $pageSlug): PageDto { $slug = new Slug(strval($pageSlug->value())); $pageSlugInput = new GetPageQueryInput($slug); return $this->executor->execute( $this->getPageQuery, $pageSlugInput ); } }