💳 CartaoController - bbarrosomoreira/digital-bank-api GitHub Wiki
📄 PT-BR | EN-US
🇧🇷 CartaoController – Descrição
Este controller é responsável pela emissão e gerenciamento dos cartões de débito e crédito dos clientes. Ele permite que o cliente solicite cartões, visualize os seus e o administrador tenha controle total sobre todos os cartões emitidos no banco.
🇺🇸 CartaoController – Description
This controller handles the issuing and management of debit and credit cards for clients. Clients can request cards and view their own, while administrators have full control over all issued cards in the system.
📥 Endpoints
Método | Endpoint | Acesso | Descrição (PT-BR) | Description (EN-US) |
---|---|---|---|---|
POST | /cartoes |
CLIENTE | Solicita um novo cartão (Crédito ou Débito) | Requests a new card (Credit or Debit) |
GET | /cartoes/meus-cartoes |
CLIENTE | Lista todos os cartões do cliente logado | Lists all cards belonging to the logged-in client |
GET | /cartoes |
ADMIN | Lista todos os cartões do banco | Lists all cards issued by the bank |
GET | /cartoes/{id_cartao} |
ADMIN/CLIENTE | Retorna cartão por ID do cartão (cliente só acessa as próprias) | Returns card by card ID (client can only access their own) |
GET | /cartoes/cliente/{id_cliente} |
ADMIN/CLIENTE | Retorna cartão por ID do cliente (cliente só acessa as próprias) | Returns card by client ID (client can only access their own) |
GET | /cartoes/conta/{id_conta} |
ADMIN/CLIENTE | Retorna cartão por ID da conta (cliente só acessa as próprias) | Returns card by account ID (client can only access their own) |
DELETE | /cartoes/cliente/{id_cliente} |
ADMIN | Exclui um cartão por ID do cliente | Deletes a card by client ID |
POST | /cartoes/{id_cartao}/pagamento |
CLIENTE | Realiza um pagamento com o cartão | Makes a payment using the card |
PUT | /cartoes/{id_cartao}/limite |
ADMIN | Altera o limite do cartão | Changes the card limit |
PUT | /cartoes/{id_cartao}/status |
ADMIN/CLIENTE | Altera o status do cartão | Changes the card status |
PUT | /cartoes/{id_cartao}/senha |
ADMIN/CLIENTE | Altera a senha do cartão | Changes the card PIN |
GET | /cartoes/{id_cartao}/fatura |
ADMIN/CLIENTE | Retorna a fatura do cartão de crédito (cliente só acessa as próprias) | Returns the credit card bill (client can only access their own) |
POST | /cartoes/{id_cartao}/fatura/pagamento |
ADMIN/CLIENTE | Realiza o pagamento da fatura do cartão de crédito (cliente só acessa as próprias) | Pays the credit card bill (client can only access their own) |
PUT | /cartoes/{id_cartao}/limite-diario |
ADMIN | Resseta o limite diário de compras com o cartão de débito | Resets the daily purchase limit for the debit card |
🔐 Regras de Acesso
- O cliente pode solicitar e visualizar somente os seus próprios cartões.
- O administrador pode visualizar e excluir todos os cartões.
💡 Observações
- O cliente deve informar o tipo de cartão desejado:
CREDITO
ouDEBITO
. - Cada cartão está associado a uma conta bancária previamente criada.
- O cliente precisa estar autenticado via JWT para realizar as ações.
📌 Exemplos (JSON)
Solicitação de cartão (CLIENTE logado)
Requisição:
POST /cartoes
Authorization: Bearer {token}
Content-Type: application/json
{
"id_conta": 1,
"tipoCartao": "credito",
"senha": "1234"
}
Resposta:
{
"id": 1,
"numCartao": "4031 6952 0613 4679",
"tipoCartao": "CREDITO",
"status": "ATIVADO",
"numConta": "CC-6676",
"dataVencimento": "24-04-2030",
"limite": 1000.00
}