Skip to content

rafaelAmora/API-LAWYER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚖️ Legal Tickets API

API REST para gerenciamento de chamados jurídicos entre advogados e clientes, com autenticação JWT, controle de acesso por perfil e sistema de interações por chamado.


🛠️ Tecnologias

  • Node.js 18+ · TypeScript 5
  • Express 5 · Helmet · CORS
  • Prisma 6 · PostgreSQL
  • JSON Web Token · Bcrypt
  • Zod 4 · rate-limiter-flexible

🔐 Autenticação

O sistema usa JWT de curta duração (10 min) + Refresh Token (1 dia) armazenado em cookie HttpOnly.

Método Rota Descrição
POST /login Autentica o usuário e retorna o access token
POST /refreshtoken Gera um novo access token via cookie
DELETE /logout Invalida o refresh token e limpa o cookie

Todas as rotas abaixo exigem o header Authorization: Bearer <token>.


👤 Perfis de acesso

Role Permissões
LAWYER Acesso total — gerencia usuários, chamados e interações
CUSTOMER Acesso restrito — visualiza apenas seus próprios chamados e interações

📌 Endpoints

Usuários — /users

Método Rota Role Descrição
POST /users LAWYER Cria um novo usuário
GET /users LAWYER Lista todos os usuários (?customer=true filtra por clientes)
GET /users/:id LAWYER / próprio CUSTOMER Busca um usuário por ID
PATCH /users/:id LAWYER / próprio CUSTOMER Atualiza dados do usuário
DELETE /users/:id LAWYER Remove um usuário

Chamados — /tickets

Método Rota Role Descrição
POST /tickets LAWYER Abre um novo chamado para um cliente
GET /tickets LAWYER / CUSTOMER Lista chamados (CUSTOMER vê apenas os seus)
GET /tickets/:id LAWYER / CUSTOMER Detalha um chamado com suas interações
PATCH /tickets/:id LAWYER Atualiza título, descrição ou status
DELETE /tickets/:id LAWYER Remove um chamado

Status disponíveis: OPEN · WAITING · FINALIZED


Interações — /interactions

Respostas dentro de um chamado, registradas por advogados.

Método Rota Role Descrição
POST /interactions/:id LAWYER Adiciona uma interação ao chamado {id}
GET /interactions/:id LAWYER / CUSTOMER Lista interações do chamado {id}
PATCH /interactions/:id LAWYER Edita uma interação pelo seu ID
DELETE /interactions/:id LAWYER Remove uma interação pelo seu ID

⚙️ Configuração

1. Instale as dependências

npm install

2. Configure o .env

DATABASE_URL="postgresql://usuario:senha@localhost:5432/legal_tickets"
JWT_SECRET=sua_chave_secreta

3. Execute as migrations

npx prisma migrate dev

4. Inicie o servidor

npm run dev

Servidor rodando em http://localhost:3333.


👨‍💻 Autor

Feito por rafaelAmora

About

API REST para gerenciamento de chamados jurídicos entre **advogados** e **clientes**, com autenticação JWT, controle de acesso por perfil e sistema de interações por chamado.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors