💳 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 ou DEBITO.
  • 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
}