Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ default Department findByIdElseThrow(UUID departmentId) {
LOWER(s.name) LIKE LOWER(CONCAT('%', :searchQuery, '%')) OR
LOWER(s.abbreviation) LIKE LOWER(CONCAT('%', :searchQuery, '%'))
)
AND (:schoolNames IS NULL OR s.name IN :schoolNames)
AND (:schoolNames IS NULL OR LOWER(s.name) IN :schoolNames)
"""
)
Page<DepartmentDTO> findAllForAdmin(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import de.tum.cit.aet.usermanagement.dto.DepartmentDTO;
import de.tum.cit.aet.usermanagement.repository.DepartmentRepository;
import de.tum.cit.aet.usermanagement.repository.SchoolRepository;
import jakarta.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -92,9 +94,19 @@ public List<DepartmentDTO> getDepartmentsBySchoolId(UUID schoolId) {
* @param pageDTO the paging parameters
* @param filterDTO the filter parameters (searchQuery, schoolNames)
* @param sortDTO the sorting parameters
* @param request the HTTP servlet request to extract schoolNames
* @return a paged response of DepartmentDTOs
*/
public PageResponseDTO<DepartmentDTO> getDepartmentsForAdmin(PageDTO pageDTO, AdminDepartmentFilterDTO filterDTO, SortDTO sortDTO) {
public PageResponseDTO<DepartmentDTO> getDepartmentsForAdmin(
PageDTO pageDTO,
AdminDepartmentFilterDTO filterDTO,
SortDTO sortDTO,
HttpServletRequest request
) {
String[] schoolNames = request.getParameterValues("schoolNames");
if (schoolNames != null) {
filterDTO.setSchoolNames(Arrays.asList(schoolNames));
}
PageRequest pageable = PageUtil.createPageRequest(pageDTO, sortDTO, PageUtil.ColumnMapping.DEPARTMENTS_ADMIN, true);
String normalizedSearch = StringUtil.normalizeSearchQuery(filterDTO.getSearchQuery());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import de.tum.cit.aet.usermanagement.dto.DepartmentCreationDTO;
import de.tum.cit.aet.usermanagement.dto.DepartmentDTO;
import de.tum.cit.aet.usermanagement.service.DepartmentService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import java.util.List;
import java.util.UUID;
Expand Down Expand Up @@ -70,22 +71,24 @@ public ResponseEntity<List<DepartmentDTO>> getDepartments(@RequestParam(required
* @param pageDTO paging params
* @param filterDTO filter params (searchQuery, schoolNames)
* @param sortDTO sorting params
* @param request HTTP servlet request to extract parameters
* @return paginated departments
*/
@Admin
@GetMapping("/admin/search")
public ResponseEntity<PageResponseDTO<DepartmentDTO>> getDepartmentsForAdmin(
@ParameterObject @Valid @ModelAttribute PageDTO pageDTO,
@ParameterObject @Valid @ModelAttribute AdminDepartmentFilterDTO filterDTO,
@ParameterObject @Valid @ModelAttribute SortDTO sortDTO
@ParameterObject @Valid @ModelAttribute SortDTO sortDTO,
HttpServletRequest request
) {
log.info(
"GET /api/departments/admin/search - Fetching departments for admin with page={}, filter={}, sort={}",
pageDTO,
filterDTO,
sortDTO
);
PageResponseDTO<DepartmentDTO> response = departmentService.getDepartmentsForAdmin(pageDTO, filterDTO, sortDTO);
PageResponseDTO<DepartmentDTO> response = departmentService.getDepartmentsForAdmin(pageDTO, filterDTO, sortDTO, request);
return ResponseEntity.ok(response);
}

Expand Down
Loading