Bem vindo ao Projeto Back-End-Crypto - Desafio - Full-Stack-Trybe
O projeto é uma api para cotação de BitCoin, usando uma API externa CoinDesk, documentação está disponível aqui, para pegar a cotação do BTC em dolar, para depois sim a api criada retornar os valores em EUR, CAD, BRL de acordo com a cotação do dólar que deve ser atualizada manualmente em uma das rotas.
Criado o FrontEnd da aplicação em Front.
Para executar o projeto, basta seguir os seguintes passos:
-
Navegue para o local onde o projeto será clonado e execute o comando
git@github.com:HenriqueEyer/back-end-crypto.git
; -
Execute o comando
cd back-end-crypto
; -
Instale as dependências utilizando o comando
npm install
; -
Inicialize o projeto com
npm start
;
Os testes desenvolvidos utilizam o jest.
Os testes abrangem todas as regras de negócio do projeto, não se restringindo a julgar a qualidade apenas pela cobertura de linhas.
Para rodar os testes, utilize npm test
.
Para ver a cobertura de testes, utilize o comando npm run test-coverage
.
Typescript
Validator - validações de campos
Jest - testes da aplicação
supertest - Para auxiliar nos testes da api
fetch-mock, node-fetch,fetch-mock-jest - para realizar request fetch e mock para os testes.
eslint - Padrão do Standard JavaScript
git-commit-msg-linter - Auxiliar commit formatados.
Rotas:
-body:
- email - padrão name@email.com
- password - Necessário 6 digitos exatos e todos números.
sucesso - statusCode: 200,
{
"message": "token(token de 16 caracteres)"
}
falha - statusCode do erro,
{
"message": "referente ao erro"
}
get: /api/crypto/btc - Realiza a request para pegar os dados, necessário possuir o token de 16 digitos gerado no login.
sucesso - statusCode: 200,
{
"time": {
"updated": "Mar 22, 2020 23:54:00 UTC",
"updatedISO": "2020-03-22T23:54:00+00:00",
"updateduk": "Mar 22, 2020 at 23:54 GMT"
},
"disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
"bpi": {
"USD": {
"code": "USD",
"rate": "6,506.6717",
"description": "United States Dollar",
"rate_float": 6506.6717
},
"BTC": {
"code": "BTC",
"rate": "1,0000.00",
"description": "Bitcoin",
"rate_float": 1
},
"BRL": {
"code": "BRL",
"rate": "1.0000",
"description": "Bitcoin",
"rate_float": 10000
},
"EUR": {
"code": "EUR",
"rate": "1.0000",
"description": "Bitcoin",
"rate_float": 10000
},
"CAD": {
"code": "CAD",
"rate": "2.0000",
"description": "Bitcoin",
"rate_float": 20000
}
}
}
falha - statusCode do erro,
{
"message": "referente ao erro"
}
-body:
-
currency - Precisa ser alguma dessas ["CAD","BRL","EUR"].
-
value - Qualquer numero inteiro maior que o zero.
sucesso - statusCode: 200,
{
"message": "Valor alterado com sucesso!"
}
falha - statusCode do erro,
{
"message": "referente ao erro"
}