8000 GitHub - flpcastro/virtual-wallet: API Rest que simula uma carteira virtual, com a feature de transferência entre usuários.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

flpcastro/virtual-wallet

Repository files navigation

Golang Logo

Virtual Wallet - REST API - GOLANG

Techs utilizadas

Variáveis de Ambiente

Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env

API_PORT

DATABASE_URL

Requisitos

  • Crie um enpoint que recebe o dois ids de usuários, e um valor monetário representando a transferência entre eles.
  • Crie um endpoint que recebe um id de usuário e retorna o saldo dele.
  • Valide se o usuário de origem tem saldo suficiente antes da transferência.
  • É preciso pensar na possibilidade de concorrência de transferências onde duas pessoas tranferem dinheiro ao mesmo tempo para uma terceira.
  • Se uma transferência falhar, o saldo do usuário de origem deve ser restaurado.
  • Não é necessário endpoints para criar usuários, popule o banco de forma com que os dois usuários existam e que transferências possam ser feitas entre eles.

Endpoints

Criar uma transferência

  POST /transfer/
Parâmetro Tipo Descrição
amount int64 Obrigatório. Valor da transferência
debtor_id string Obrigatório. ID do Debitante
beneficiary_id string Obrigatório. ID do Beneficiário

Buscar usuário pelo id

  GET /users/{id}
  • Exemplo de Payload:
{
  "amount": 100,
  "debtor_id": "089557bc-ddf2-4ec5-8077-d8bf09fe3ddc",
  "beneficiary_id": "f2f0e0d1-e37e-45c3-ad06-e6c2a66544fc"
}
  • Exemplo de Requisição:
curl -X POST \
  http://localhost:8080/opportunity \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{
	"amount": 10,
	"debtor_id": "089557bc-ddf2-4ec5-8077-d8bf09fe3ddc",
	"beneficiary_id": "f2f0e0d1-e37e-45c3-ad06-e6c2a66544fc"
}'

About

API Rest que simula uma carteira virtual, com a feature de transferência entre usuários.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0