/** * @param User $user * @param Invitation $invitation * @return User * @throws InvalidUserInvitationEmailException * @throws InvitationNotFoundException * @throws InvitationExpiredException * @throws DuplicateEmailException * @throws DuplicateUsernameException */ public function registerNewUser(User $user, Invitation $invitation) { if ($user->email !== $invitation->email) { throw new InvalidUserInvitationEmailException(); } if (!$invitation->isActive()) { throw new InvitationExpiredException(); } return $this->userSystemCreator->registerUser($user, $invitation); }
/** * @param Invitation $invitation */ private function checkInvitationState(Invitation $invitation) { if (!$invitation->isActive()) { throw new InvitationExpiredException(); } }