Skip to content

thiagoluiznunes/redcoins-api

Repository files navigation

Red Coins API


Red Coins API é uma API de autenticação de usuário e operação de compra/venda de cripto moedas.

Objetivo: desafio técnico Red Ventures.

Ferramentas: Golang | Docker | Docker-compose

Requerimentos

É necessário a instalação prévia do Docker e do Docker-compose

Instalação do Projeto

Obs.: As seguintes instruções foram testadas na distribuição do Ubuntu 18.04 Bionic

1 - Depois de clonar o repositório 'git clone' (comando), execute os seguintes comandos para criar as imagens docker "redcoins-api", "mysqldb" e "swagger-ui":

  • user@user:~/diretorio_projeto_clonado/$ docker-compose up -d
  • certifique-se se as portas :8000, :8001 e :3306 estão liberadas
  • acessa red-coins-api http://localhost:8000
  • acessa swagger interface http://localhost:8001

2 - Execução dos testes unitários

  • use@user:~/diretorio_projeto_clonado/ go test ./... -v

Rotas da API

Ação Requerido Role Método URL
AUTENTICAR USUÁRIO POST /api/v1/users/login
CRIAR USUÁRIO POST /api/v1/users/signup
CRIAR OPERAÇÃO Autenticar User POST /api/v1/operations
BUSCAR OPERAÇÕES Autenticar User/Admin GET /api/v1/operations
BUSCAR OPERAÇÕES Autenticar Admin POST /api/v1/operations/email
BUSCAR OPERAÇÕES Autenticar Admin GET /api/v1/operations/date/{date}
BUSCAR OPERAÇÕES Autenticar Admin GET /api/v1/operations/name/{name}

AUTENTICAR USUÁRIO

  • REQUISIÇÃO
POST /api/v1/users/login
{
  "email": "user@gmail.com",
  "password": "user123"
}
  • RESPOSTA
{
  "code": "200",
  "token": "eyJhbGciOiJI..."
}

CRIAR USUÁRIO

  • REQUISIÇÃO
POST /api/v1/users/signup
{
  "name": "User test",
  "email": "user@gmail.com",
  "password": "user123",
  "confirm_password": "user123",
  "secret": "" // Para criação de usuário Admin
}
  • RESPOSTA
{
  "code": "201",
  "message": "User registered with success."
}

CRIAR OPERAÇÔES

  • REQUISIÇÃO
POST /api/v1/operations
{
  "operation_type": "purchase", // purchase ou sale
  "amount": "150",
}
  • RESPOSTA
{
  "code": "200",
  "message": "Operation successfully performed."
}

RECUPERAR OPERAÇÔES

  • REQUISIÇÃO
GET /api/v1/operations
  • RESPOSTA
{
  "code": "200",
  "operations": [
    {
      ...
    },
  ]
}

RECUPERAR OPERAÇÔES BY DATE

  • REQUISIÇÃO
GET /api/v1/operations/date/{date}
  • RESPOSTA
{
  "code": "200",
  "operations": [
    {
      ...
    },
  ]
}

RECUPERAR OPERAÇÔES BY NAME

  • REQUISIÇÃO
GET /api/v1/operations/name/{name}
  • RESPOSTA
{
  "code": "200",
  "operations": [
    {
      ...
    },
  ]
}

RECUPERAR OPERAÇÔES BY EMAIL

  • REQUISIÇÃO
POST /api/v1/operations/email
{
  "email": "admin@gmail.com",
}
  • RESPOSTA
{
  "code": "200",
  "operations": [
    {
      ...
    },
  ]
}

Autor

Licença

Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE.md para obter detalhes

Criado por ThiagoLuizNunes 2019.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published