Skip to content

Za duża metoda, do rozbicia na mniejsze #4

@m1kha3l

Description

@m1kha3l

public ResponseEntity<?> signUp(SignupRequest signUpRequest) {
if (userRepository.existsByUsername(signUpRequest.getUsername())) {
return ResponseEntity
.badRequest()
.body(AuthConstants.USERNAME_ALREADY_USED_INFO);
}
if (userRepository.existsByEmail(signUpRequest.getEmail())) {
return ResponseEntity
.badRequest()
.body(AuthConstants.EMAIL_ALREADY_USED_INFO);
}
User user = new User(signUpRequest.getUsername(), signUpRequest.getFirstName(), signUpRequest.getSurname(),
signUpRequest.getEmail(),
encoder.encode(signUpRequest.getPassword()));
Set<String> strRoles = signUpRequest.getRoles();
Set<Role> roles = new HashSet<>();
//
if (strRoles == null) {
Role userRole = roleRepository.findByName(ERole.ROLE_PLAYER)
.orElseThrow(() -> new RuntimeException(AuthConstants.ROLE_IS_NOT_FOUND_INFO));
roles.add(userRole);
Player player = new Player(signUpRequest.getUsername(), signUpRequest.getFirstName(), signUpRequest.getSurname(),
signUpRequest.getEmail(),
encoder.encode(signUpRequest.getPassword()), SettingsParams.START_BUDGET);
player.setRoles(roles);
playerRepository.save(player);
return ResponseEntity.ok(AuthConstants.USER_SUCCESSFUL_REGISTERED);
} else {
strRoles.forEach(role -> {
if ("mod".equals(role)) {
Role modRole = roleRepository.findByName(ERole.ROLE_MODERATOR)
.orElseThrow(() -> new RuntimeException(AuthConstants.ROLE_IS_NOT_FOUND_INFO));
roles.add(modRole);
} else {
Role userRole = roleRepository.findByName(ERole.ROLE_PLAYER)
.orElseThrow(() -> new RuntimeException(AuthConstants.ROLE_IS_NOT_FOUND_INFO));
roles.add(userRole);
}
});
}
user.setRoles(roles);
userRepository.save(user);
return ResponseEntity.ok(AuthConstants.USER_SUCCESSFUL_REGISTERED);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions