Skip to content

[TREINAMENTO] CRUD de Vacinas — Denilson Rodrigues - #902

Open
Denilsonrsl wants to merge 2 commits into
training/patient-vaccine-crudfrom
feature/887-vacinas-crud-denilson-rodrigues
Open

[TREINAMENTO] CRUD de Vacinas — Denilson Rodrigues#902
Denilsonrsl wants to merge 2 commits into
training/patient-vaccine-crudfrom
feature/887-vacinas-crud-denilson-rodrigues

Conversation

@Denilsonrsl

Copy link
Copy Markdown
Collaborator

O que mudou?

Implementado CRUD completo de vacinas (criacao, edicao e exclusao), incluindo validacao de nome obrigatorio (2 a 100 caracteres), bloqueio de nome duplicado e bloqueio de exclusao de vacina vinculada a paciente.

Tarefas Relacionadas

Mudancas Realizadas

  • Adicionado botao 'Adicionar' na listagem de vacinas, faltante na versao anterior
  • Corrigido bug de params assincrono nao aguardado nas rotas da API e na pagina de edicao (causava erro 500 ao editar/excluir)
  • Corrigido tratamento de erro para propagar a mensagem real do backend (ex: nome duplicado) em vez de mensagem generica

Evidencias

Video gravado demonstrando: criar vacina, editar vacina, bloqueio de nome duplicado com mensagem correta, exclusao de vacina sem vinculo, busca por nome na listagem.

Video.Project.mp4

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 747905a5-81f4-4c3e-8d7c-09ca6824fce6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Dario-Arthur Dario-Arthur left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Problemas encontrados no PR #902

  1. Nome duplicado com case diferente não é bloqueado
    Ocorre tanto na criação quanto na edição de vacina. Um nome já existente em case diferente (ex: "bcg" quando "BCG" já existe) é aceito nos dois fluxos. Necessário tornar a validação case-insensitive (existsByNameIgnoreCase).

  2. Nome muito curto (1 caractere) é aceito
    Também presente na criação e na edição. O formulário não bloqueia nomes com menos de 2 caracteres antes de enviar. A issue exige 2-100 caracteres — a validação precisa ser aplicada em ambos os fluxos.

O que precisa ser feito
1 - Ajustar a validação de nome duplicado no backend para ignorar maiúsculas/minúsculas — na criação e na edição
2 - Adicionar validação de tamanho mínimo (2 caracteres) no formulário e/ou reforçar no backend — na criação e na edição

Build (./mvnw compile, tsc e npm run build) passando sem erros. Demais pontos testados (botão adicionar, editar/excluir sem erro 500, bloqueio de exclusão com mensagem, busca, pré-preenchimento, 404, mobile) estão funcionando corretamente.

@Denilsonrsl

Copy link
Copy Markdown
Collaborator Author

Corrigidos os dois problemas apontados na revisao:

  1. Nome duplicado com case diferente: o metodo de criacao usava findByName (sensivel a maiusculas/minusculas). Corrigido para usar existsByNameIgnoreCase, igual ja era feito na edicao.

  2. Nome muito curto aceito: faltava a anotacao @Valid no controller, entao as regras de @SiZe(min=2, max=100) dos DTOs nunca eram validadas, tanto na criacao quanto na edicao. Adicionado @Valid nos dois endpoints. Tambem reforcei a validacao no frontend (vaccines.schema.ts).

Testado localmente: nome duplicado com case diferente bloqueado na criacao e na edicao, nome de 1 caractere bloqueado, build do frontend e backend sem erros, demais fluxos continuam funcionando normalmente.

@Dario-Arthur

@euAllanDev
euAllanDev self-requested a review August 28, 2026 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants