Skip to content

Commit d4bf415

Browse files
committed
Add Api endpoints for search functionality
1 parent 9e79946 commit d4bf415

6 files changed

Lines changed: 39 additions & 1 deletion

File tree

backend/src/main/java/com/example/employeemanagement/controller/DepartmentController.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,31 @@ public List<Department> getAllDepartments() {
3434
return departmentService.getAllDepartments();
3535
}
3636

37+
/**
38+
* Search departments by name API.
39+
*
40+
* @param name The name or partial name to search for
41+
* @return List of departments matching the search criteria
42+
*/
43+
@Operation(
44+
summary = "Search departments by name",
45+
description = "Retrieve departments filtered by name (case-insensitive partial match)")
46+
@ApiResponses(
47+
value = {
48+
@ApiResponse(responseCode = "200", description = "Departments found"),
49+
})
50+
@GetMapping("/search")
51+
public List<Department> searchDepartments(
52+
@Parameter(
53+
description = "Name or partial name to search for (case-insensitive)",
54+
example = "Engineering")
55+
@RequestParam(name = "name", required = false) String name) {
56+
if (name == null || name.trim().isEmpty()) {
57+
return getAllDepartments();
58+
}
59+
return departmentService.searchDepartmentsByName(name.trim());
60+
}
61+
3762
/**
3863
* Get department by ID API.
3964
*

backend/src/main/java/com/example/employeemanagement/repository/DepartmentRepository.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import com.example.employeemanagement.model.Department;
44
import org.springframework.data.jpa.repository.JpaRepository;
55
import org.springframework.stereotype.Repository;
6+
import java.util.List;
67

78
/** This interface represents a repository for departments. */
89
@Repository
9-
public interface DepartmentRepository extends JpaRepository<Department, Long> {}
10+
public interface DepartmentRepository extends JpaRepository<Department, Long> {
11+
List<Department> findByNameContainingIgnoreCase(String name);
12+
}

backend/src/main/java/com/example/employeemanagement/service/DepartmentService.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ public List<Department> getAllDepartments() {
2323
return departmentRepository.findAll();
2424
}
2525

26+
/**
27+
* Search departments by name.
28+
*
29+
* @param name The name to search for (case-insensitive partial match)
30+
* @return List of departments matching the search criteria
31+
*/
32+
public List<Department> searchDepartmentsByName(String name) {
33+
return departmentRepository.findByNameContainingIgnoreCase(name);
34+
}
35+
2636
/**
2737
* Get department by ID.
2838
*
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)