Skip to content

[API] Criação, edição e exclusão autenticadas de eventos #16

Description

@Ronildo22

Criação, edição e exclusão autenticadas de eventos

Contexto

A API já possui listagem e leitura de eventos, mas ainda é necessário garantir o fluxo de escrita com autenticação no backend.

Para permitir o gerenciamento de eventos via NestJS com segurança, precisamos cobrir criação, edição e exclusão com validação de payload e proteção por token.

Objetivo

Permitir criação, edição e exclusão de eventos via NestJS, com DTOs validados, endpoints protegidos por autenticação e retorno do evento criado/atualizado.

Exemplos de requisição e resposta

Exemplo 1 — Criar evento autenticado

Requisição:

POST /events
Authorization: Bearer <token>
Content-Type: application/json
{
  "name": "Workshop de Backend",
  "description": "Hands-on de NestJS",
  "location": "São Paulo, Brasil",
  "date": "2026-04-10T19:00:00.000Z",
  "capacity": 120
}

Resposta esperada (201): retorna o evento criado.

Exemplo 2 — Atualizar evento autenticado

Requisição:

PATCH /events/:id
Authorization: Bearer <token>
Content-Type: application/json
{
  "name": "Workshop de Backend Avançado"
}

Resposta esperada (200): retorna o evento atualizado.

Exemplo 3 — Excluir evento autenticado

Requisição:

DELETE /events/:id
Authorization: Bearer <token>

Resposta esperada (204): evento removido com sucesso.

Exemplo 4 — Payload inválido

Requisição:

POST /events
Authorization: Bearer <token>
Content-Type: application/json
{
  "name": "",
  "capacity": 0
}

Resposta esperada (400): erro de validação do payload.

Exemplo 5 — Sem token válido

Requisição:

PATCH /events/:id

Resposta esperada (401/403): acesso negado por autenticação/autorização.

Comportamento esperado

  • POST /events cria um novo evento quando o token for válido.
  • PATCH /events/:id atualiza um evento existente quando o token for válido.
  • DELETE /events/:id remove um evento existente quando o token for válido.
  • Os endpoints de escrita devem estar protegidos por guard de autenticação.
  • CreateEventDto e UpdateEventDto devem validar os payloads com class-validator.
  • Erros de validação devem retornar 400 Bad Request.
  • Criação e edição devem retornar o evento persistido.

Tarefas

  • Implementar ou ajustar CreateEventDto com validações usando class-validator.
  • Implementar ou ajustar UpdateEventDto com validações usando class-validator.
  • Implementar o endpoint POST /events.
  • Implementar o endpoint PATCH /events/:id.
  • Implementar o endpoint DELETE /events/:id.
  • Aplicar guard de autenticação nos endpoints de escrita.
  • Garantir que criação e edição retornem o evento criado/atualizado.
  • Documentar autenticação e respostas no Swagger.
  • Adicionar testes unitários e e2e cobrindo sucesso, falha de validação e acesso sem token.

Critérios de aceite

  • Operações de criação, edição e exclusão funcionam com token válido.
  • POST /events retorna o evento criado.
  • PATCH /events/:id retorna o evento atualizado.
  • DELETE /events/:id remove o evento com sucesso.
  • Erros de validação retornam 400.
  • Requisições sem token válido são bloqueadas pelo guard.
  • Existem testes cobrindo os fluxos principais.

Dependências

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions