GithubHelp home page GithubHelp logo

pit-stop's Introduction

pit-stop | Introdução

Esse é um projeto Back End de um E-commerce, para armazenar produtos e efetuar a compra dos mesmos a partir do carrinho de compra.

Endpoints

User

Post | Login

https://pitstop-api.herokuapp.com/api/users/login/

O usuário vai passar seu email e senha e recebera um Token de autenticação com status 200 OK.

Requisição

{
  "email": "[email protected]",
  "password": "senhaFOrte1234"
}

Resposta

{
  "token": "$2a$10$I4dNmZfH/k39xZmGBXlta.7XCbdkHlSlgdjLh7J5G1w7sX1/XOqNK"
}

Post | Criação de novo usuário.

https://pitstop-api.herokuapp.com/api/users/

Requisição para criar um novo usuário na plataforma.

Requisição

{
  "email": "[email protected]",
  "name": "kenzinho",
  "password": "1234"
}

Resposta | status 201 Created

{
  "id": 1,
  "name": "Kenzinho",
  "email": "[email protected]",
  "is_superuser": false
}

Post | Criação de novo usuário ADM.

https://pitstop-api.herokuapp.com/api/users/

Apenas um usuário ADM pode criar outro usuário ADM. Necessário TOKEN de autenticação.

Requisição

{
  "email": "[email protected]",
  "name": "kenzinhoADM",
  "password": "1234"
}

Resposta | status 201 Created

{
  "id": 1,
  "name": "KenzinhoADM",
  "email": "[email protected]",
  "is_superuser": true
}

Resposta | Status 401 Unauthorized

Se não houver TOKEN de autentificação.

{
  "detail": "Authentication credentials were not provided."
}

Produtos

Post | Criação de um novo produto na plataforma.

https://pitstop-api.herokuapp.com/api/products/

Requisição para criar um novo produto na plataforma. Necessário TOKEN para autentificação do usuário que está criadno o produto. Apenas com um usuário ADM é permitido criar um novo produto. A propriedade "is_superuser" dever ser TRUE.

Requisição

{
  "name": "shell3",
  "description": "algo novo",
  "manufacturer": "manufaturado",
  "img": "zero",
  "price": 4,
  "categorie": "peça",
  "warranty": 3,
  "stock": {
    "quantity": 4
  }
}

Resposta | Status 201 Created

{
  "id": "f709847a-c475-4847-8d66-6f4dc7eb6ec8",
  "name": "shell3",
  "description": "algo novo",
  "manufacturer": "manufaturado",
  "warranty": 3,
  "price": "4.00",
  "categorie": "peça",
  "stock": {
    "quantity": 4.0
  }
}

Resposta | Status 401 Unauthorized

Se não houver TOKEN de autentificação.

{
  "detail": "Authentication credentials were not provided."
}

GET | Listagem de produtos.

https://pitstop-api.herokuapp.com/api/products/

Requisição para listar os produtos da plataforma. Não é preciso autentificação para essa rota.

Requisição

Não tem corpo na requisição.

Resposta | status 200 OK

Retorna uma lista de todos os produtos cadastrados na plataforma. Não precisa do TOKEN de autenticação.

[
  {
    "id": "e7724f7f-0bc2-41b3-86a7-03787047c101",
    "name": "shell",
    "description": "algo novo",
    "manufacturer": "manufaturado",
    "warranty": 3,
    "price": "4.00",
    "categorie": "peça",
    "stock": {
      "quantity": 4.0
    }
  },
  "..."
]

Carrinho

Post | Adicionar um produto ao carrinho.

https://pitstop-api.herokuapp.com/api/carts/

Requisição para adicionar um produto ao carrinho do usuário. Deve ser passado dentro de uma lista os "ids" dos respectivos produtos que ele deseja adiconar ao carrinho do usuário. Autenticação de TOKEN necessária.

Requisição

{
  "list_products": [
    {
      "id": "e7724f7f-0bc2-41b3-86a7-03787047c101"
    }
  ]
}

Resposta | status 201 Created

{
  "id": 1,
  "user": {
    "id": 1,
    "name": "Kenzinho",
    "email": "[email protected]",
    "is_superuser": false
  },
  "products": [
    {
      "id": 3,
      "price": 4,
      "amount": 1,
      "product": "e7724f7f-0bc2-41b3-86a7-03787047c101"
    }
  ]
}

Resposta | status 400 Bad Request

Precisa passar um "id" para dentro do corpor da requisição ou voltará um Error 400.

{
  "list_products": [
    {
      "id": ["This field is required."]
    }
  ]
}

GET | Pegar produtos do carrinho.

https://pitstop-api.herokuapp.com/api/carts/

Requisição para listar os produtos dentro do carinho do usuário. Autenticação de TOKEN necessária.

Requisição

Sem corpo de requisição.

Resposta | status 200 OK

[
  {
    "product_uuid": "e7724f7f-0bc2-41b3-86a7-03787047c101",
    "name": "shell",
    "description": "algo novo",
    "manufacturer": "manufaturado",
    "warranty": 3,
    "price": "4.00",
    "categorie": "peça",
    "stock": {
      "quantity": 4.0
    }
  },
  "..."
]

DEL | Deletar produto especifico do carrinho.

https://pitstop-api.herokuapp.com/api/carts/products/e7724f7f-0bc2-41b3-86a7-03787047c101

Requisição para remover produto especifico do carrinho. Precisa passar o "product_uuid" do produto desejado na URL. Autenticação de TOKEN necessária.

Requisição

Sem corpo de requisição

Resposta | status 204 No Content

Produto deletado do carrinho com sucesso!

Sem corpo de resposta

Resposta | status 404 Not Found

Caso passe um "product_uuid" que não exista na plataforma ele retorna uma status 404 Not Found.

{
  "message": "Product not found"
}

Resposta | Status 401 Unauthorized

Se não houver TOKEN de autentificação.

{
  "detail": "Authentication credentials were not provided."
}

Ordens

GET | Listar todas as ordens.

https://pitstop-api.herokuapp.com/api/order/

Lista os ID das ordem e os usuários que fizeram as requisições dessas ordens, assim como o horário que cada ordem foi feita. Autenticação de TOKEN necessária.

Requisição

Sem corpo de requisição

Resposta | status 200 OK

[
  {
    "id": 1,
    "date": "2022-07-27T13:44:12.554973Z",
    "user": {
      "id": 1,
      "name": "Kenzinho",
      "email": "[email protected]",
      "is_superuser": false
    }
  },
  "..."
]

Resposta | Status 401 Unauthorized

Se não houver TOKEN de autentificação.

{
  "detail": "Authentication credentials were not provided."
}

GET | Pegar um ordem especifica.

https://pitstop-api.herokuapp.com/api/order/3

Deve pasar o ID da ordem que deseja pegar no final da URL. Autenticação de TOKEN necessária.

Requisição

Sem corpo de requisição

Resposta | status 200 OK

Retorna o usuário que efetuou aquela ordem e o horário que foi feita.

{
  "id": 3,
  "date": "2022-07-27T13:51:17.197102Z",
  "user": {
    "id": 1,
    "name": "Kenzinho",
    "email": "[email protected]",
    "is_superuser": false
  }
}

Resposta | status 404 Not Found

Caso passe um ID de uma ordem que não exista.

{
  "detail": "Not found."
}

Resposta | Status 401 Unauthorized

Se não houver TOKEN de autentificação.

{
  "detail": "Authentication credentials were not provided."
}

POST | Criar uma nova ordem.

https://pitstop-api.herokuapp.com/api/order/

Cria uma nova ordem com todos os produtos que estão no carrinho daquele usuário. Autenticação de TOKEN necessária.

Requisição

Sem corpo de requisição

Resposta | status 201 Created

Retorna o usuário, data de criação da ordem e os produtos que vieram do carrinho daquele usuário para a ordem.

{
  "id": 3,
  "date": "2022-07-27T13:51:17.197102Z",
  "user": {
    "id": 1,
    "name": "Kenzinho",
    "email": "[email protected]",
    "is_superuser": false
  },
  "products": [
    {
      "id": 2,
      "product": {
        "product_uuid": "e7724f7f-0bc2-41b3-86a7-03787047c101",
        "name": "shell",
        "manufacturer": "manufaturado",
        "warranty": 3,
        "img": "",
        "categorie": "peça"
      },
      "value": "4.00",
      "amount": 1,
      "order": 3
    }
  ]
}

Resposta | Status 401 Unauthorized

Se não houver TOKEN de autentificação.

{
  "detail": "Authentication credentials were not provided."
}

...

E é isso! Vamos ver nosso E-commerce.

Happy codin!!!

pit-stop's People

Contributors

matheus-araujo-cunha avatar samuelmangarodrigues avatar breno174 avatar joao-pillon avatar otavio-ikegami 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.