Skip to content

tiagobuchanelli/ChallengeBank

Repository files navigation

Desenvolver uma API em C# com .NET Core

Objetivo

Desenvolver uma API em C# com .NET Core que simule algumas funcionalidades de um banco digital. Nesta simulação considere que não há necessidade de autenticação.

Desafio

Você deverá garantir que o usuário conseguirá realizar uma movimentação de sua conta corrente para quitar uma dívida.

Cenários

DADO QUE eu consuma a API
QUANDO eu chamar a mutation sacar informando o número da conta e um valor válido
ENTÃO o saldo da minha conta no banco de dados diminuirá de acordo
E a mutation retornará o saldo atualizado.

DADO QUE eu consuma a API
QUANDO eu chamar a mutation sacar informando o número da conta e um valor maior do que o meu saldo
ENTÃO a mutation me retornará um erro do GraphQL informando que eu não tenho saldo suficiente

DADO QUE eu consuma a API
QUANDO eu chamar a mutation depositar informando o número da conta e um valor válido
ENTÃO a mutation atualizará o saldo da conta no banco de dados
E a mutation retornará o saldo atualizado.

DADO QUE eu consuma a API
QUANDO eu chamar a query saldo informando o número da conta
ENTÃO a query retornará o saldo atualizado.

Execuçaõ do Projeto

Banco de Dados

  • Criado a aplicação e executado com o banco de dados em memória
- Banco de Dados em Memoria --- dotnet add package Microsoft.EntityFrameworkCore.InMemory

ORM

  • Utilizado Entity Framework

Docker

  • Baixar a imagem do Docker Hub
docker pull tiagobuchanelli/dockerapi:mytag
  • Executar o container:
docker run -p 8080:80 tiagobuchanelli/dockerapi:mytag
Comandos Docker
- Gerar Imagem de acordo com Dockerfile: docker build -t tiagobuchanelli/dockerapi . 
- Executar Container: docker run -p 8080:80 tiagobuchanelli/dockerapi
- Visualizar imagens criadas: docker images
- Visualizar containers: docker container ps -a

Insomnia

  • Utilizado Insomnia para testar as requisições da API.
  • Caso ocorrer erros referente a certificados, desabilitar a opção "Validate certificates" nas configurações do aplicativo.

Teste Requisições (Demo):

- Criar Usuários
URL: http://localhost:8080/v1/usuarios
JSON: 
{
	"nome": "Fabiana",
	"CPF": "01782863000"
}

Resultado:
CriarUsuario

- Criar Conta Corrente
URL: http://localhost:8080/v1/conta-corrente
JSON:
{
	"titularId": 1,
	"Agencia": 87878,
	"Numero": 454545
}

Resultado:
CriarContaCorrente

- Realizar Depósito
URL: http://localhost:8080/v1/conta-corrente/depositar
JSON:
{
	"Valor": 900.00,
	"Numero": 454545
}

Resultado:
RealizarDeposito

- Realizar Saque
URL: http://localhost:8080/v1/conta-corrente/sacar
JSON:
{
	"Valor": 200.00,
	"Numero": 454545
}

Resultado:
RealizarSaque

- Consultar Saldo
URL: http://localhost:8080/v1/conta-corrente/saldo/454545

Resultado:
consultarSaldo

- Outras Consultas:
[GET] URL: http://localhost:8080/v1/usuarios
[GET] URL: http://localhost:8080/v1/conta-corrente

RESTAURAR PROJETO:

- gh repo clone tiagobuchanelli/FuncionalHealthChallenge

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published