eventRepository = $eventRepository; $this->tokenStorage = $tokenStorage; } /** * @param string $eventSlug * * @return Event * * @throws NotFoundHttpException */ public function getEvent($eventSlug) { $event = $this->eventRepository->getOneBy(['path' => $eventSlug]); if ($event === null) { throw new NotFoundHttpException('Event not found'); } return $event; } /** * @param int|null $id * @param bool $allowFallback * * @return Event */ public function getEventById($id = null, $allowFallback = true) { $event = null; if (null !== $id) { $event = $this->eventRepository->get((int) $id); } elseif ($allowFallback) { $event = $this->eventRepository->getNextEvent(); } if ($event === null) { throw new NotFoundHttpException('Could not find event'); } return $event; } /** * @return GithubUser */ public function getUser() { $token = $this->tokenStorage->getToken(); Assertion::notNull($token); /** @var GithubUser $user */ $user = $token->getUser(); Assertion::isInstanceOf($user, GithubUser::class); return $user; } }