public function validate(SignUpParameters $signUpParameters) { $password = $signUpParameters->getPassword(); $isValid = is_string($password) && strlen($password) >= 6 || strlen($password) <= 40; if (!$isValid) { throw new ValidationException('Password must be at least 6 characters'); } }
public function validate(SignUpParameters $signUpParameters) { $hasEmail = strlen($signUpParameters->getEmail()) > 0; $hasPassword = !empty($signUpParameters->getPassword()); $isValid = $hasEmail && $hasPassword; if (!$isValid) { throw new MissingRequiredFieldException('Email and password are required'); } }
public function signUp(SignUpParameters $signUpParameters) : Account { $email = $signUpParameters->getEmail(); $password = $signUpParameters->getPassword(); array_map(function (SignUpValidator $validator) use($signUpParameters) { $validator->validate($signUpParameters); }, [new HasAllRequiredFields(), new IsEmailValid(), new PasswordHasRequiredLength(), new HasSameAccount($this->accountService)]); $account = $this->accountService->createAccount($email, $password); $this->auth($account); return $account; }