Modified the API parameter of get all users

This commit is contained in:
nisha
2024-12-20 16:32:09 +05:30
parent c02e421eb6
commit 1a578e2727
6 changed files with 17 additions and 15 deletions

View File

@@ -448,12 +448,14 @@ public class UserDao {
return authService.validateNewUserToken(token);
}
public List<UserResponseBean> getAllUsers(UserEntity user, Long roleId) {
public List<UserResponseBean> getAllUsers(UserEntity user, List<Long> roleIds) {
List<UserEntity> users;
if (roleId != null) {
log.info("Fetching users by role ID: {}", roleId);
RoleEntity roleEntity=roleService.validateRole(roleId);
users = userRepository.findByRoleEntityIdAndHubId(roleEntity.getId(), user.getHub().getId());
if (roleIds != null) {
log.info("Fetching users by role ID: {}", roleIds);
List<RoleEntity> roleEntities = roleIds.stream()
.map(roleService::validateRole) // Assuming `validateRole` takes an ID and returns a RoleEntity
.collect(Collectors.toList());
users = userRepository.findByRoleEntityIdInAndHubId(roleIds, user.getHub().getId());
} else {
log.info("Fetching all users");
users = userRepository.findByHubId(user.getHub().getId());
@@ -462,7 +464,7 @@ public class UserDao {
.map(this::convertUserEntityToUserResponse)
.collect(Collectors.toList());
log.info("Total users found with role ID {}: {}", roleId, userResponseBeans.size());
log.info("Total users found with role ID {}: {}", roleIds, userResponseBeans.size());
return userResponseBeans;
}

View File

@@ -16,7 +16,7 @@ public interface UserRepository extends JpaRepository<UserEntity, Long> {
boolean existsByEmailIgnoreCaseAndHubUniqueUuid(String email, String hubUuid);
List<UserEntity> findByRoleEntityIdAndHubId(Long roleId, Long hubId);
List<UserEntity> findByRoleEntityIdInAndHubId(List<Long> roleIds, Long hubId);
List<UserEntity> findByHubId(Long hubId);

View File

@@ -45,6 +45,6 @@ public interface UserService {
UserEntity getUserByBeneficiaryId(Long beneficiaryId);
public UserEntity getUserEntityById(Long userId);
List<UserResponseBean> getAllUsers(HttpServletRequest request, Long roleId);
List<UserResponseBean> getAllUsers(HttpServletRequest request, List<Long> roleIds);
}

View File

@@ -126,8 +126,8 @@ public class UserServiceImpl implements UserService {
}
@Override
@Transactional(readOnly = true)
public List<UserResponseBean> getAllUsers(HttpServletRequest request, Long roleId) {
public List<UserResponseBean> getAllUsers(HttpServletRequest request, List<Long> roleIds) {
UserEntity user=validator.validateUser(request);
return userDao.getAllUsers(user, roleId);
return userDao.getAllUsers(user, roleIds);
}
}

View File

@@ -234,9 +234,9 @@ public interface UserApi {
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE)}))})
@RequestMapping(value = "", produces = {"application/json"}, method = RequestMethod.GET)
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')|| hasRole('ROLE_INSTRUCTOR_MANAGER')")
ResponseEntity<Response<List<UserResponseBean>>> getAllUsers(HttpServletRequest request,
@Parameter( required = false)@RequestParam(value ="roleId", required = false) Long roleId);
@Parameter( required = false)@RequestParam(value ="roleIds", required = false) List<Long> roleIds);
@RequestMapping("favicon.ico")

View File

@@ -216,14 +216,14 @@ public class UserApiController implements UserApi {
}
@Override
public ResponseEntity<Response<List<UserResponseBean>>> getAllUsers(HttpServletRequest request, Long roleId) {
public ResponseEntity<Response<List<UserResponseBean>>> getAllUsers(HttpServletRequest request, List<Long> roleIds) {
log.info("Get all Users by Role ID - Role ID: {}", roleId);
log.info("Get all Users by Role ID - Role ID: {}", roleIds);
/** This code is responsible for creating user action logs for the "Get all users by role" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.GET_ALL_USERS_BY_ROLE).build());
List<UserResponseBean> users = userService.getAllUsers(request, roleId);
List<UserResponseBean> users = userService.getAllUsers(request, roleIds);
return ResponseEntity.status(HttpStatus.OK).body(new Response<>(users, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_USERS_SUCCESS_MSG)));
}