Skip to content

feat(simulado): permissões + endpoints provas cursinho (Etapa 6 Cards 02+03) - #508

Merged
FernandoAlmeidaPinto merged 10 commits into
developfrom
feature/etapa6-cursinho-prova-controller
Aug 2, 2026
Merged

feat(simulado): permissões + endpoints provas cursinho (Etapa 6 Cards 02+03)#508
FernandoAlmeidaPinto merged 10 commits into
developfrom
feature/etapa6-cursinho-prova-controller

Conversation

@FernandoAlmeidaPinto

Copy link
Copy Markdown
Member

Etapa 6 · Cards 02 + 03 — api-vcnafacul

Cadeia encadeada (Card 02 → Card 03). Define as permissões dedicadas do cursinho e expõe os endpoints proxy cursinho-scoped.

Card 02 — Permissões visualizar/cadastrarProvasCursinho

  • Enum Permissions + PERMISSION_FIELD_MAP (Record exaustivo) + novo grupo provas_cursinho no PERMISSION_HIERARCHY (tipo prepCourse, cadastrar ⇒ visualizar).
  • 2 colunas em roles (entity) + 2 campos opcionais (@IsOptional) no CreateRoleDto (evita quebrar client antigo no deploy api-antes-de-client).
  • RoleService.create e .update passam a ler/persistir as 2 permissões (não entram no BASE_PERMISSIONS — prepCourse não cascateia).
  • Seed admin ganha as 2 = true.
  • Migration AddPermissoesProvasCursinho (2 colunas tinyint NOT NULL DEFAULT 0).

Card 03 — CursinhoResolverService + CursinhoProvaController

  • GET/POST /mssimulado/cursinho/prova, gated por JwtAuthGuard (401) + PermissionsGuard (403, visualizar/cadastrarProvasCursinho).
  • CursinhoResolverService resolve o cursinhoId do JWT via Collaborator ativo (findActiveByUserIdWithPrep); sem vínculo/inativo → 403.
  • POST injeta criadorId + cursinhoId no servidor (ignora o body); reusa ProvaService.createProva (ganhou 5º param opcional cursinhoId, retrocompatível com o fluxo admin).
  • getAllByCursinho proxeia pro ms GET /v1/prova/cursinho/:cursinhoId.

Testes

Build + testes do módulo role e simulado verdes (resolver 403, RoleService persistência+implies, controller segurança/injeção, proxy URL).

⚠️ Deploy: rodar a migration em janela; deploy depois do ms-simulado, antes do client.

Parte da série Provas Cursinho (etapa 6).

🤖 Generated with Claude Code

@FernandoAlmeidaPinto FernandoAlmeidaPinto self-assigned this Aug 1, 2026
@FernandoAlmeidaPinto
FernandoAlmeidaPinto merged commit f40e59a into develop Aug 2, 2026
4 checks passed
@FernandoAlmeidaPinto
FernandoAlmeidaPinto deleted the feature/etapa6-cursinho-prova-controller branch August 2, 2026 00:00
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.

1 participant