-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement NinjaService and update NinjaController methods #14
Conversation
…flyway configs too
Guia do Revisor por SourceryEste PR implementa uma estrutura básica de CRUD para um sistema de gerenciamento de Ninjas usando Spring Boot. As mudanças incluem a configuração de uma camada de serviço, interface de repositório e atualização do controlador para usar esses novos componentes. Além disso, as configurações do banco de dados são modificadas para usar um banco de dados H2 baseado em arquivo em vez de armazenamento em memória. Diagrama ER para MissionsModel e NinjaModelerDiagram
MISSIONS_MODEL {
Long id
String name
String difficulty
}
NINJA_MODEL {
Long id
String name
String rank
}
MISSIONS_MODEL ||--o{ NINJA_MODEL : has
note for MISSIONS_MODEL "@JsonIgnore adicionado ao relacionamento de ninjas"
Diagrama de classes para o sistema de gerenciamento de NinjasclassDiagram
class NinjaController {
- NinjaService ninjaService
+ NinjaController(NinjaService ninjaService)
+ listarNinjas() List~NinjaModel~
+ findNinjasByID(Long id) Optional~NinjaModel~
}
class NinjaService {
- NinjaRepository ninjaRepository
+ NinjaService(NinjaRepository ninjaRepository)
+ listarNinjas() List~NinjaModel~
+ findNinjaByID(Long id) Optional~NinjaModel~
}
class NinjaRepository {
+ id(Long id) Long
}
class NinjaModel
NinjaController --> NinjaService
NinjaService --> NinjaRepository
NinjaRepository --> NinjaModel
Alterações a Nível de Arquivo
Possíveis problemas relacionados
Dicas e comandosInteragindo com o Sourcery
Personalizando Sua ExperiênciaAcesse seu painel para:
Obtendo Ajuda
Original review guide in EnglishReviewer's Guide by SourceryThis PR implements a basic CRUD structure for a Ninja management system using Spring Boot. The changes include setting up a service layer, repository interface, and updating the controller to use these new components. Additionally, database configurations are modified to use a file-based H2 database instead of in-memory storage. ER diagram for MissionsModel and NinjaModelerDiagram
MISSIONS_MODEL {
Long id
String name
String difficulty
}
NINJA_MODEL {
Long id
String name
String rank
}
MISSIONS_MODEL ||--o{ NINJA_MODEL : has
note for MISSIONS_MODEL "@JsonIgnore added to ninjas relationship"
Class diagram for Ninja management systemclassDiagram
class NinjaController {
- NinjaService ninjaService
+ NinjaController(NinjaService ninjaService)
+ listarNinjas() List~NinjaModel~
+ findNinjasByID(Long id) Optional~NinjaModel~
}
class NinjaService {
- NinjaRepository ninjaRepository
+ NinjaService(NinjaRepository ninjaRepository)
+ listarNinjas() List~NinjaModel~
+ findNinjaByID(Long id) Optional~NinjaModel~
}
class NinjaRepository {
+ id(Long id) Long
}
class NinjaModel
NinjaController --> NinjaService
NinjaService --> NinjaRepository
NinjaRepository --> NinjaModel
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Olá @OtavioXimarelli - Eu revisei suas alterações e encontrei alguns problemas que precisam ser resolvidos.
Problemas bloqueantes:
- O método está faltando o parâmetro 'id' necessário em sua assinatura (link)
Comentários gerais:
- O método findNinjasByID() no NinjaController está faltando o parâmetro 'id' em sua assinatura de método, mas o utiliza na chamada de serviço. Adicione '@PathVariable Long id' aos parâmetros do método.
- Remova a importação estática não utilizada 'org.springframework.data.jpa.domain.AbstractPersistable_.id' de NinjaService.java
- O método id() no NinjaRepository é redundante, pois JpaRepository já fornece findById(). Considere removê-lo.
Aqui está o que eu observei durante a revisão
- 🔴 Problemas gerais: 1 problema bloqueante, 2 outros problemas
- 🟢 Segurança: tudo parece bom
- 🟢 Testes: tudo parece bom
- 🟢 Complexidade: tudo parece bom
- 🟢 Documentação: tudo parece bom
O Sourcery é gratuito para código aberto - se você gosta das nossas revisões, por favor, considere compartilhá-las ✨
Original comment in English
Hey @OtavioXimarelli - I've reviewed your changes and found some issues that need to be addressed.
Blocking issues:
- Method is missing the required 'id' parameter in its signature (link)
Overall Comments:
- The findNinjasByID() method in NinjaController is missing the 'id' parameter in its method signature but uses it in the service call. Add '@PathVariable Long id' to the method parameters.
- Remove the unused static import 'org.springframework.data.jpa.domain.AbstractPersistable_.id' from NinjaService.java
- The id() method in NinjaRepository is redundant since JpaRepository already provides findById(). Consider removing it.
Here's what I looked at during the review
- 🔴 General issues: 1 blocking issue, 2 other issues
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
} | ||
|
||
@GetMapping("/showByID") | ||
public String mostarTodosOsNinjasPorID() { | ||
return "Mostrar Ninja por id"; | ||
public Optional<NinjaModel> findNinjasByID() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue (bug_risk): O método está faltando o parâmetro 'id' necessário em sua assinatura
O método deve ser definido como: public Optional findNinjasByID(@RequestParam Long id)
Original comment in English
issue (bug_risk): Method is missing the required 'id' parameter in its signature
The method should be defined as: public Optional findNinjasByID(@RequestParam Long id)
|
||
@Repository | ||
public interface NinjaRepository extends JpaRepository<NinjaModel, Long> { | ||
Long id(Long id); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Remova o método id() desnecessário, pois JpaRepository já fornece findById()
@Repository
public interface NinjaRepository extends JpaRepository<NinjaModel, Long> {
}
Original comment in English
suggestion: Remove unnecessary id() method as JpaRepository already provides findById()
@Repository
public interface NinjaRepository extends JpaRepository<NinjaModel, Long> {
}
spring.flyway.baseline-on-migrate=true | ||
|
||
spring.flyway.url=jdbc:h2:file:./data/testdb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Evite duplicar a configuração da URL do banco de dados
Considere usar a referência de propriedade do Spring: spring.flyway.url=${spring.datasource.url} para manter a consistência
spring.flyway.url=${spring.datasource.url}
Original comment in English
suggestion: Avoid duplicating database URL configuration
Consider using Spring's property reference: spring.flyway.url=${spring.datasource.url} to maintain consistency
spring.flyway.url=${spring.datasource.url}
Resumo por Sourcery
Integrar uma camada de serviço para operações Ninja introduzindo NinjaService e NinjaRepository. Refatorar NinjaController para utilizar a nova camada de serviço para recuperação de dados. Atualizar as propriedades da aplicação para mudar de um banco de dados H2 em memória para um baseado em arquivo, e configurar o Flyway de acordo.
Novas Funcionalidades:
Melhorias:
Build:
Original summary in English
Summary by Sourcery
Integrate a service layer for Ninja operations by introducing NinjaService and NinjaRepository. Refactor NinjaController to utilize the new service layer for data retrieval. Update application properties to switch from an in-memory to a file-based H2 database, and configure Flyway accordingly.
New Features:
Enhancements:
Build: