[TREINAMENTO] CRUD de Vacinas - José Arthur - #885
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Testei o PR localmente:
npx tsc --noEmit e npm run build passando sem erros
Listagem, busca por nome, criação, edição e exclusão de vacina funcionando na interface
Testado em mobile também (criação via FAB)
Encontrei um bug na validação de nome duplicado: ao tentar criar uma vacina com nome já existente (ex: "Teste"), o sistema exibe toast de sucesso e o POST /api/vaccines retorna 200, mas a vacina não é de fato criada (o contador de vacinas não aumenta). O esperado, conforme a issue #869, é que a API retorne 409 Conflict e a interface exiba um erro claro não um falso sucesso.
Isso é um problema de integridade: o usuário recebe feedback de que a ação funcionou quando na verdade não aconteceu nada. Vale revisar a lógica de validação de duplicidade no backend (VaccineApplicationServiceImpl / existsByNameIgnoreCaseAndIdNot).
|
@Dario-Arthur Ajustei esse problema. Seguem as alterações feitas:
|
|
@JoseArthurAlmeida Beleza, testei aqui e confirmo que resolveu, tentei criar com nome duplicado e agora bloqueia certinho, com o toast de erro aparecendo. Build também segue ok (tsc --noEmit e build sem erros). Ainda vou validar mais alguns pontos antes de fechar de vez a review, mas esse aqui já está certo. Valeu pelo ajuste rápido! |
MeloWillian
left a comment
There was a problem hiding this comment.
Evidências devem sempre ficar registradas na issue. Na descrição do PR, você pode, por exemplo, adicionar uma observação informando que todas as evidências foram disponibilizadas na issue.
|
@MeloWillian Atualizei a issue com a evidência e já adicionei a observação na descrição do PR. |
O que mudou?
Este PR implementa o CRUD completo de vacinas, tanto no backend (API) quanto no frontend (APAE). Antes da mudança, as vacinas só podiam ser listadas e consultadas; agora é possível criar, editar e excluir registros de vacinas, com validações e tratamento de conflitos.
Issue Relacionadas
Closes #873
Mudanças Realizadas
POST /vaccines,PUT /vaccines/{id}eDELETE /vaccines/{id}com DTOs de entrada validados (CreateVaccineDTO,UpdateVaccineDTO), lógica de negócio noVaccineApplicationServiceImpl, mapeamento e métodos no repositório (existsByNameIgnoreCaseAndIdNot).VaccineConflictException(nome duplicado) eVaccineInUseException(vacina vinculada a pacientes), tratadas noPatientExceptionHandlercom status409 Conflicte404 Not Foundpara vacina inexistente./vaccines/newe/vaccines/[id]/edit, com formulários e hooks (use-vaccine-create,use-vaccine-edit), schemas Zod de validação e campos com capitalização automática.fetchVaccineApi,createVaccineApi,updateVaccineApiedeleteVaccineApi, além das rotas proxy do Next.js (POST /api/vaccinese/api/vaccines/[id]).Evidências
As evidências estão registradas e documentadas na issue .