From 58fc49ecb76f4edae62b79098781b5a41e481169 Mon Sep 17 00:00:00 2001 From: Pedro Reis Date: Thu, 8 Feb 2024 16:29:54 -0300 Subject: [PATCH] Add employee endpoint --- .../com/pedro/rest/controller/EmployeeController.java | 7 ++++++- .../com/pedro/rest/repository/EmployeeRepository.java | 8 ++++++++ src/main/java/com/pedro/rest/service/EmployeeService.java | 2 ++ .../com/pedro/rest/service/impl/EmployeeServiceImpl.java | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/pedro/rest/controller/EmployeeController.java b/src/main/java/com/pedro/rest/controller/EmployeeController.java index d31f507..cd2dd65 100644 --- a/src/main/java/com/pedro/rest/controller/EmployeeController.java +++ b/src/main/java/com/pedro/rest/controller/EmployeeController.java @@ -21,9 +21,14 @@ public CollectionModel> getAll() { return service.getAll(); } + @GetMapping("/role") + public CollectionModel> getAllByRole(@RequestParam(name = "search", defaultValue = "") String role) { + return service.getAllByRole(role); + } + @GetMapping("/{id}") public EntityModel getById(@PathVariable Long id) { -return service.getById(id); + return service.getById(id); } @PostMapping diff --git a/src/main/java/com/pedro/rest/repository/EmployeeRepository.java b/src/main/java/com/pedro/rest/repository/EmployeeRepository.java index d5d865b..86d5029 100644 --- a/src/main/java/com/pedro/rest/repository/EmployeeRepository.java +++ b/src/main/java/com/pedro/rest/repository/EmployeeRepository.java @@ -1,7 +1,15 @@ +/* + JPA Query Methods + https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html +* */ + package com.pedro.rest.repository; import com.pedro.rest.model.Employee; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface EmployeeRepository extends JpaRepository { + List findByRoleIgnoreCaseContaining(String role); } diff --git a/src/main/java/com/pedro/rest/service/EmployeeService.java b/src/main/java/com/pedro/rest/service/EmployeeService.java index e5c0967..eca80ba 100644 --- a/src/main/java/com/pedro/rest/service/EmployeeService.java +++ b/src/main/java/com/pedro/rest/service/EmployeeService.java @@ -8,6 +8,8 @@ public interface EmployeeService { CollectionModel> getAll(); + CollectionModel> getAllByRole(String role); + EntityModel getById(Long id); ResponseEntity create(Employee employee); diff --git a/src/main/java/com/pedro/rest/service/impl/EmployeeServiceImpl.java b/src/main/java/com/pedro/rest/service/impl/EmployeeServiceImpl.java index ad3e4fa..0570fd5 100644 --- a/src/main/java/com/pedro/rest/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/pedro/rest/service/impl/EmployeeServiceImpl.java @@ -27,6 +27,11 @@ public CollectionModel> getAll() { return assembler.toCollectionModel(repository.findAll()); } + @Override + public CollectionModel> getAllByRole(String role) { + return assembler.toCollectionModel(repository.findByRoleIgnoreCaseContaining(role)); + } + @Override public EntityModel getById(Long id) { var employee = repository.findById(id).orElseThrow(() -> new EmployeeNotFoundException(id));