[REFACTOR] Extracted user-related operations into a dedicated UserService and updated controller methods to use it
parent
26842fe040
commit
ea3f7d02b6
@ -0,0 +1,17 @@
|
||||
package kr.re.etri.autoflow.payload.response;
|
||||
|
||||
import kr.re.etri.autoflow.entity.ProjectPermission;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@AllArgsConstructor
|
||||
public class UserProjectResponse {
|
||||
private Long projectId;
|
||||
private String projectName;
|
||||
private Set<ProjectPermission> permissions;
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
package kr.re.etri.autoflow.service;
|
||||
|
||||
import kr.re.etri.autoflow.payload.response.UserProjectResponse;
|
||||
import kr.re.etri.autoflow.payload.response.UserInfoResponse;
|
||||
import kr.re.etri.autoflow.repository.UserProjectMapRepository;
|
||||
import kr.re.etri.autoflow.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class UserService {
|
||||
|
||||
private final UserRepository userRepository;
|
||||
private final UserProjectMapRepository userProjectMapRepository;
|
||||
|
||||
/**
|
||||
* 사용자 ID로 조회
|
||||
*/
|
||||
public Optional<UserInfoResponse> getUserById(Long id) {
|
||||
return userRepository.findById(id)
|
||||
.map(user -> new UserInfoResponse(
|
||||
user.getId(),
|
||||
user.getUsername(),
|
||||
user.getEmail(),
|
||||
user.getRoles().stream()
|
||||
.map(role -> role.getName().name())
|
||||
.toList()
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 전체 사용자 조회
|
||||
*/
|
||||
public List<UserInfoResponse> getAllUsers() {
|
||||
return userRepository.findAll().stream()
|
||||
.map(user -> new UserInfoResponse(
|
||||
user.getId(),
|
||||
user.getUsername(),
|
||||
user.getEmail(),
|
||||
user.getRoles().stream()
|
||||
.map(role -> role.getName().name())
|
||||
.toList()
|
||||
))
|
||||
.toList();
|
||||
}
|
||||
|
||||
public List<UserProjectResponse> getUserProjects(Long userId) {
|
||||
return userProjectMapRepository.findAllByUserId(userId).stream()
|
||||
.map(mapping -> new UserProjectResponse(
|
||||
mapping.getProject().getId(),
|
||||
mapping.getProject().getPrjNm(),
|
||||
mapping.getPermissions()
|
||||
))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue