Coder Social home page Coder Social logo

desafio-backend's Introduction

Desafio Backend

Instalação

  • Iniciar a aplicação docker-compose up --build.
  • Criar o banco de dados docker-compose exec php php artisan migrate --seed.
  • Iniciar o Laravel Horizon docker-compose exec -d php php artisan horizon.
  • Opcional:
    • docker-compose exec php composer install para instalar as dependências do Laravel.
    • docker-compose exec php cp .env.example .env para criar o arquivo .env (obrigatório).
    • docker-compose exec php artisan key:generate para gerar o APP_KEY (obrigatório).

Documentação

O projecto foi construido utilizando o framework Laravel. Abaixo os endpoints e exemplos de respostas:

Lista todos os usuários

GET /api/users

Exemplo:

curl http://localhost:8000/api/users
[
    {
        "id": 2,
        "name": "Sr. Fábio Azevedo",
        "email": "[email protected]",
        "document": "060.372.981-90",
        "logist": false,
        "balance": 7603
    },
    {
        "id": 4,
        "name": "Sr. Estêvão George Barreto",
        "email": "[email protected]",
        "document": "518.949.137-44",
        "logist": false,
        "balance": 1599.8
    },
    {
        "id": 5,
        "name": "Srta. Norma Chaves Jr.",
        "email": "[email protected]",
        "document": "269.377.702-00",
        "logist": false,
        "balance": 1968.6
    },
]

Exibe informações de determinado usuário

GET /api/users/:id

Exemplo:

curl http://localhost:8000/api/users/1
{
    "id": 1,
    "name": "Melissa Cordeiro Sobrinho",
    "email": "[email protected]",
    "document": "123.858.160-91",
    "logist": true,
    "balance": 7002.2
}

Cria um novo usuário

POST /api/users

Exemplo:

curl -X POST http://localhost:8000/api/users -H "Content-Type: application/json" -d '{"name":"Diogo Siva","email":"[email protected]","document":"539.064.320-84","password":"secret"}'
{
    "status":"created",
    "data":{
        "id":7,
        "name":"Diogo Siva",
        "email":"[email protected]",
        "document":"539.064.320-84",
        "logist": false,
        "balance": 0
    }
}

Atualiza os dados de determinado usuário

PUT /api/users/:id

Exemplo:

curl -X PUT http://localhost:8000/api/users/7 -H "Content-Type: application/json" -d '{"name":"Diogo Silva"}'
{
    "status":"updated",
    "data":{
        "id":7,
        "name":"Diogo Silva",
        "email":"[email protected]",
        "document":"539.064.320-84",
        "logist": true,
        "balance": 7002.2
    }
}

Deleta determinado usuário (soft delete)

DELETE /api/users/:id

Exemplo:

curl -X DELETE http://localhost:8000/api/users/7
{
    "status":"deleted",
    "data":{
        "id":7,
        "name":"Diogo Silva",
        "email":"[email protected]",
        "document":"539.064.320-84",
        "logist": true,
        "balance": 7002.2
    }
}

Lista as transferências de determinado usuário

GET /api/transactions/:id

Exemplo:

curl http://localhost:8000/api/transactions/7
[
    {
        "id": 2,
        "value": 15,
        "date": "18/04/2021 às 19:07:59",
        "payer": 1,
        "payee": 7
    },
    {
        "id": 1,
        "value": 15,
        "date": "19/04/2021 às 18:07:59",
        "payer": 1,
        "payee": 7
    }
]

Realiza uma transferência entre usuários (payer e payee)

POST /api/transactions

Exemplo:

curl -X POST http://localhost:8000/api/transactions -H "Content-Type: application/json" -d '{"value":100.0,"payee":4,"payer":15}'
{
    "status": "success",
    "data": {
        "value" : 100.00,
        "payer" : 4,
        "payee" : 15
    }
}

Sobre

LinkedIn: Thiago Prates

desafio-backend's People

Contributors

tsprates avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.