Skip to content

Commit f6b9f7e

Browse files
committed
feat(person): adds search implementation
1 parent 0ce770d commit f6b9f7e

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

src/main/java/com/github/renancvitor/inventory/application/person/controller/PersonController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ public class PersonController {
3838
@GetMapping
3939
public ResponseEntity<CustomPage<PersonListingData>> list(@RequestParam(required = false) Boolean active,
4040
@PageableDefault(size = 10, sort = ("personName")) Pageable pageable,
41+
@RequestParam(required = false) String search,
4142
@AuthenticationPrincipal User loggedInUser) {
42-
var page = personService.list(pageable, loggedInUser, active);
43+
var page = personService.list(pageable, search, loggedInUser, active);
4344
return ResponseEntity.ok(PageMapper.toCustomPage(page));
4445
}
4546

src/main/java/com/github/renancvitor/inventory/application/person/repository/PersonRepository.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,11 @@ public interface PersonRepository extends JpaRepository<Person, Long> {
2020

2121
Optional<Person> findByPersonName(String name);
2222

23+
Page<Person> findByPersonNameContainingIgnoreCaseOrEmailContainingIgnoreCaseOrCpfContaining(
24+
String personName,
25+
String email,
26+
String cpf,
27+
Pageable pageable
28+
);
29+
2330
}

src/main/java/com/github/renancvitor/inventory/application/person/service/PersonService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,16 @@ public class PersonService {
3232
private final AuthenticationService authenticationService;
3333
private final SystemLogPublisherService logPublisherService;
3434

35-
public Page<PersonListingData> list(Pageable pageable, User loggedInUser, Boolean active) {
35+
public Page<PersonListingData> list(Pageable pageable, String search, User loggedInUser, Boolean active) {
3636
authenticationService.authorize(List.of(UserTypeEnum.ADMIN));
3737

38+
if (search != null && !search.isBlank()) {
39+
return personRepository
40+
.findByPersonNameContainingIgnoreCaseOrEmailContainingIgnoreCaseOrCpfContaining(
41+
search, search, search, pageable)
42+
.map(PersonListingData::new);
43+
}
44+
3845
if (active != null) {
3946
return personRepository.findAllByActive(active, pageable).map(PersonListingData::new);
4047
}

0 commit comments

Comments
 (0)