Skip to content

Commit 2b07257

Browse files
committed
feat: Refactor event name search and update route names
- Updated EventoGateway and EventoRepositoryGateway to improve event name search logic - Modified BeanConfiguration to register the correct use case - Adjusted EventoRepository to support refined name filtering - Renamed and updated routes in EventoController for better clarity - Added new FiltrarNomeEventoUsecase and FiltrarNomeEventoUsecaseImpl for improved event name filtering
1 parent f7c8394 commit 2b07257

File tree

7 files changed

+54
-4
lines changed

7 files changed

+54
-4
lines changed

src/main/java/dev/java10x/EventClean/core/gateway/EventoGateway.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
public interface EventoGateway {
77

88
Optional<Evento> filtrarPorIdentificador(String identificador);
9+
Optional<Evento> filtrarPorNome(String nome);
910
Evento criarEvento(Evento evento);
1011
List<Evento> buscarEventos();
1112
boolean existePorIdentificador(String identificador);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package dev.java10x.EventClean.core.usecases;
2+
import dev.java10x.EventClean.core.entities.Evento;
3+
4+
public interface FiltrarNomeEventoUsecase {
5+
6+
public Evento execute(String nome);
7+
8+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package dev.java10x.EventClean.core.usecases;
2+
import dev.java10x.EventClean.core.entities.Evento;
3+
import dev.java10x.EventClean.core.gateway.EventoGateway;
4+
import dev.java10x.EventClean.infrastructure.exception.NotFoundEventException;
5+
import org.springframework.stereotype.Service;
6+
7+
public class FiltrarNomeEventoUsecaseImpl implements FiltrarNomeEventoUsecase {
8+
9+
private final EventoGateway eventoGateway;
10+
11+
public FiltrarNomeEventoUsecaseImpl(EventoGateway eventoGateway) {
12+
this.eventoGateway = eventoGateway;
13+
}
14+
15+
@Override
16+
public Evento execute(String nome) {
17+
return eventoGateway.filtrarPorNome(nome)
18+
.orElseThrow(() -> new NotFoundEventException("Evento com nome " + nome + " não encontrado."));
19+
}
20+
}

src/main/java/dev/java10x/EventClean/infrastructure/beans/BeanConfiguration.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ public FiltrarIdentificadorEventoUsacase filtrarIdentificadorEventoUsacase(Event
2222
return new FiltrarIdentificadorEventoUsecaseImpl(eventoGateway);
2323
}
2424

25+
@Bean
26+
public FiltrarNomeEventoUsecase filtrarNomeEventoUsecase(EventoGateway eventoGateway) {
27+
return new FiltrarNomeEventoUsecaseImpl(eventoGateway);
28+
}
29+
2530

2631

2732

src/main/java/dev/java10x/EventClean/infrastructure/gateway/EventoRepositoryGateway.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,9 @@ public boolean existePorIdentificador(String identificador) {
4242
public Optional<Evento> filtrarPorIdentificador(String identificador) {
4343
return eventoRepository.findByIdentificador(identificador);
4444
}
45+
46+
@Override
47+
public Optional<Evento> filtrarPorNome(String nome) {
48+
return eventoRepository.findByNome(nome);
49+
}
4550
}

src/main/java/dev/java10x/EventClean/infrastructure/persistence/EventoRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
public interface EventoRepository extends JpaRepository<EventoEntity, Long> {
77

88
Optional<Evento> findByIdentificador(String identificador);
9+
Optional<Evento> findByNome(String nome);
10+
911

1012

1113
}

src/main/java/dev/java10x/EventClean/infrastructure/presentation/EventoController.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.java10x.EventClean.core.usecases.BuscarEventoUsecase;
44
import dev.java10x.EventClean.core.usecases.CriarEventoUsecase;
55
import dev.java10x.EventClean.core.usecases.FiltrarIdentificadorEventoUsacase;
6+
import dev.java10x.EventClean.core.usecases.FiltrarNomeEventoUsecase;
67
import dev.java10x.EventClean.infrastructure.dtos.EventoDto;
78
import dev.java10x.EventClean.infrastructure.mapper.EventoDtoMapper;
89
import org.springframework.http.ResponseEntity;
@@ -14,22 +15,24 @@
1415

1516

1617
@RestController
17-
@RequestMapping("api/v1/")
18+
@RequestMapping("api/v1/eventos")
1819
public class EventoController {
1920

2021
private final CriarEventoUsecase criarEventoUsecase;
2122
private final EventoDtoMapper eventoDtoMapper;
2223
private final BuscarEventoUsecase buscarEventoUsecase;
2324
private final FiltrarIdentificadorEventoUsacase filtrarIdentificadorEventoUsecase;
25+
private final FiltrarNomeEventoUsecase filtrarNomeEventoUsecase;
2426

25-
public EventoController(CriarEventoUsecase criarEventoUsecase, EventoDtoMapper eventoDtoMapper, BuscarEventoUsecase buscarEventoUsecase, FiltrarIdentificadorEventoUsacase filtrarIdentificadorEventoUsecase) {
27+
public EventoController(CriarEventoUsecase criarEventoUsecase, EventoDtoMapper eventoDtoMapper, BuscarEventoUsecase buscarEventoUsecase, FiltrarIdentificadorEventoUsacase filtrarIdentificadorEventoUsecase, FiltrarNomeEventoUsecase filtrarNomeEventoUsecase) {
2628
this.criarEventoUsecase = criarEventoUsecase;
2729
this.eventoDtoMapper = eventoDtoMapper;
2830
this.buscarEventoUsecase = buscarEventoUsecase;
2931
this.filtrarIdentificadorEventoUsecase = filtrarIdentificadorEventoUsecase;
32+
this.filtrarNomeEventoUsecase = filtrarNomeEventoUsecase;
3033
}
3134

32-
@PostMapping("criarevento")
35+
@PostMapping("/criarevento")
3336
public ResponseEntity<Map<String, Object>> criarEvento(@RequestBody EventoDto eventoDto) {
3437
Evento novoEvento = criarEventoUsecase.execute(eventoDtoMapper.toDomain(eventoDto));
3538
Map<String, Object> response = new HashMap<>();
@@ -38,7 +41,7 @@ public ResponseEntity<Map<String, Object>> criarEvento(@RequestBody EventoDto ev
3841
return ResponseEntity.ok(response);
3942
}
4043

41-
@GetMapping("buscarevento")
44+
@GetMapping("/todos")
4245
public List<EventoDto> buscarEventos() {
4346
return
4447
buscarEventoUsecase.execute().stream().map(eventoDtoMapper::toDto).collect(Collectors.toList());
@@ -49,5 +52,11 @@ public ResponseEntity<Evento> buscarPorIdentificador(@PathVariable String identi
4952
Evento evento = filtrarIdentificadorEventoUsecase.execute(identificador);
5053
return ResponseEntity.ok(evento);
5154
}
55+
56+
@GetMapping("/nome/{nome}")
57+
public ResponseEntity<Evento> buscarPorNome(@PathVariable String nome) {
58+
Evento evento = filtrarNomeEventoUsecase.execute(nome);
59+
return ResponseEntity.ok(evento);
60+
}
5261
}
5362

0 commit comments

Comments
 (0)