JUST-CLICK-BANK / JUST-CLICK-BANK/auth
[Review] 2024.07.23
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
### 코드 리뷰
date : 2024.07.23
---
```
@Component
public class FriendCodeUtils {
// 환경변수로
private final String codeSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
public String generateCode() {
StringBuilder code = new StringBuilder();
while (code.length() < 5) {
code.append(codeSet.charAt(new Random().nextInt(36)));
}
return code.toString();
}
}
```
---
```
// 내용적 결합도가 너무 큰거 같음 예를 들어 findUserByUuid 이 메서드는 35 군데에서 사용함 시큐리티를 사용하는 것도 방법일거 같음
// 전체적으로 null 을 리턴하는 이유가 존재 해야함
@Service
@RequiredArgsConstructor
public class AuthServiceImpl implements AuthService {
private final UserRepository userRepository;
private final JwtUtils jwtUtils;
private final FriendCodeUtils friendCodeUtils;
private final PasswordUtils passwordUtils;
@Override
@Transactional
public String createUser(UserCreateRequest req) {
String code = friendCodeUtils.generateCode();
while (findUserByCode(code) != null) {
code = friendCodeUtils.generateCode();
}
String salt = passwordUtils.generateSalt();
User user = req.toEntity(code, passwordUtils.passwordHashing(req.passwd(), salt), salt);
userRepository.save(user);
// 가독성이 조금 떨어지는 느낌 변수 하나하나 만들어서 하는거와 차별을 보는게
return jwtUtils.createLoginToken(LoginTokenResponse.from(user));
}
@Override
public User findUserByIdentity(String identity, UserIdentityType type) {
return userRepository.findByUserIdentityAndUserIdentityType(identity, type).orElse(null);
}
@Override
public User findUserByUuid(UUID userId) {
return userRepository.findById(userId).orElseThrow(() -> new NotFoundExcetion(("USER")));
}
@Override
public UserResponse findUserByCode(String code) {
return UserResponse.from(userRepository.findByUserCode(code).orElse(null));
}
@Override
public List findUsersByCodes(String[] codes) {
List allByUserCode = userRepository.findAllByUserCodeIn(codes);
return allByUserCode.stream().map(UserListResponse::from).toList();
// return userRepository.findAllByUserCode(codes).stream().map(UserListResponse::from).toList();
}
@Override
@Transactional
public void updateUserImage(UUID id, String image) {
User user = findUserByUuid(id);
user.setImage(image);
}
@Override
@Transactional
public void updateUserNickname(UUID id, String name) {
User user = findUserByUuid(id);
user.setNickname(name);
}
@Override
@Transactional
public void updateUserPassword(UUID id, String password) {
User user = findUserByUuid(id);
String salt = passwordUtils.generateSalt();
user.setPassword(passwordUtils.passwordHashing(password, salt), salt);
user.upTokenVersion();
}
@Override
@Transactional
public void updateTokenVersion(UUID id) {
User user = findUserByUuid(id);
user.upTokenVersion();
}
@Override
@Transactional
public void disableUser(UUID id) {
User user = findUserByUuid(id);
user.disable();
}
}
```
@Sujin1517
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.