👤 ClienteController - bbarrosomoreira/digital-bank-api GitHub Wiki
📄 PT-BR | EN-US
🇧🇷 ClienteController – Descrição
Este controller gerencia as operações relacionadas ao cliente do banco digital. Os endpoints aqui definidos permitem que o cliente cadastre seus dados, acesse informações vinculadas ao seu usuário autenticado e que administradores gerenciem clientes cadastrados.
🇺🇸 ClienteController – Description
This controller handles operations related to the digital bank’s clients. The endpoints defined here allow clients to register their data, access information linked to their authenticated user, and enable administrators to manage registered clients.
📥 Endpoints
Método | Endpoint | Acesso | Descrição (PT-BR) | Description (EN-US) |
---|---|---|---|---|
POST | /clientes |
CLIENTE | Cadastra um cliente vinculado ao usuário logado | Registers a client linked to the logged-in user |
GET | /clientes/me |
CLIENTE | Retorna os dados do cliente logado | Returns the logged-in client’s data |
GET | /clientes |
ADMIN | Retorna todos os clientes do banco | Returns all registered clients |
GET | /clientes/{id_cliente} |
ADMIN/CLIENTE | Retorna cliente por ID (cliente só acessa o próprio) | Returns client by ID (client can only access their own) |
DELETE | /clientes/{id_cliente} |
ADMIN | Exclui um cliente por ID | Deletes a client by ID |
PUT | /clientes/{id_cliente} |
ADMIN/CLIENTE | Atualiza dados do cliente (cliente atualiza apenas os seus) | Updates client data (client can update only their own) |
PATCH | /clientes/{id_cliente} |
ADMIN/CLIENTE | Atualiza parcialmente os dados do cliente | Partially updates client data |
PATCH | /clientes/categoria/{id_cliente} |
ADMIN | Altera a categoria do cliente | Changes the client’s category |
🔐 Regras de Acesso
- O cliente logado pode cadastrar e acessar somente suas próprias informações.
- Apenas administradores (ADMIN) podem acessar a lista completa de clientes e alterar dados de outros usuários.
💡 Observações
- Evita-se que o admin use os mesmos endpoints de cadastro de cliente para não vincular informações ao seu próprio login.
📌 Exemplos (JSON)
Cadastro de cliente (CLIENTE logado)
Requisição:
POST /clientes
Authorization: Bearer {token}
Content-Type: application/json
{
"nome": "Gerilda Mariah",
"cpf": "12345678919",
"dataNascimento": "16-09-2000",
"cep": "12345678",
"numero": 123,
"complemento": "Apto 101"
}
Resposta:
{
"id": 1,
"nome": "Gerilda Mariah",
"dataNascimento": "16-09-2000",
"idade": 24,
"endereco": {
"rua": "RUA Teste",
"numero": 123,
"complemento": "Apto 101",
"cidade": "Bujari",
"estado": "AC",
"cep": "12345678",
"enderecoPrincipal": true
},
"categoria": "Comum"
}