Example #1
0
 /**
  * @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();
     }
 }