Api criada com o framework python FastAPI, com principio de consolidar meus conhecimentos.
Crie e ative sua Venv no python e rode o comando pip install -r requirements.txt para instalar as dependências da aplicação, com a venv ativada rode o comando uvicorn app:app para rodar api.
A API contém Usuários - Produtos - Pedidos
- /auth/token/ POST - Autentica o Usuário, Caso autenticado retorna seu Token de acesso (JWT)
- /auth/me/ GET - Retorna os dados do Usuário logado
Admin - Vendedor - Comprador
Só adiciona e retira cargo a outros usuários somente quem tem a permissão de Admin. Os cargos ja são atribuidos em sua criação , mas por motivos de controle poderão ser removidos ou adicionados pelo sistema.
o Admin logado não consegue retirar o seu próprio cargo de Admin.
- /usuarios/cargos/{id}/{cargo} GET - Adiciona cargo ao ID indicado
- /usuarios/cargos/{id}/{cargo} DELETE - Retira o cargo do usuário com ID indicado
- /usuarios/adminview GET - Retorna dados de todos os Usuário e suas informações de Pedidos e Produtos .
- /usuarios/{id} GET - Retorna dados do Usuário referente ao id e suas informações de Pedidos e Produtos .
Obs: Endpoint feito apenas para Admins
- /usuarios/ GET - Retorna dados de todos os Usuário. Exceto suas informações de pedidos e vendas .
- /usuarios/{id}/ GET - Retorna dados do Usuário referente ao Id, caso o Id seja referente ao Usuário autenticado , retornará também seus Pedidos e Produtos.
Obs: O Usuário autenticado com cargo de admin poderá ver também Pedidos e Produtos de qualquer Usuário. - /usuarios/comprador POST - Cria um Usuário e atribui o cargo de Comprador (Email e Username são unicos)
- /usuarios/vendedor POST - Cria um Usuário e atribui o cargo de Vendedor (Email e Username são unicos)
- /usuarios/{id}/ PATCH - Atualiza parcialmente os dados do Usuário. Necessita da autenticação do Usuário logado ou de um Admin do Sistema
- /usuarios/{id}/ DELETE - Apaga os dados do Usuário referente ao Id . Somente Admin apaga dados de outros Usuários.
Obs: o Admin logado não consegue apagar o seu Usuário , somente outro Admin.
Os Produtos poderão ser comprados , se tornando assim um Pedido. Necessita o Usuário estar autenticado para requisição de seus respectivos endpoints. Para criar um produto necessita do cargo Vendedor.
- /usuarios/produtos GET - Retorna dados de todos os Produtos
- /usuarios/produtos/{id} GET - Retorna dados do Produtos referente ao id
- /usuarios/produtos POST - Cria um novo Produto . Necessita o Usuário estar autenticado e que tenha o cargo de vendedor
- /usuarios/patch/{id} PATCH - Atualiza parcialmente os dados do Produto. Necessita da autenticação do Usuário que criou o Produto ou de um Admin do Sistema
- /usuarios/produtos/{id}/ Delete - Apaga os dados do Produto referente ao Id Obs: Somente o Criador do Produto ou Admin consegue apagar.
Os Pedidos são solicitações feitas pelo Usuário com o cargo de Comprador a um determinado Produto. O criador precisa fazer a confirmação da entrega desse Pedido. Necessita estar autenticado para requisição de seus respectivos endpoints e com o cargo Comprador para fazer a solicitação de um Pedido.
- /usuarios/pedidos GET - Retorna dados de todos os Pedidos referente ao Usuário autenticado.
- /usuarios/pedidos/{id} GET -Retorna dados do Pedidos referente ao id indicado , caso pertença ao Usuário autenticado.
- /usuarios/pedidos POST - Cria um novo Pedido . Necessita o Usuário estar autenticado e que tenha o cargo de Comprador
- /usuarios/pedidos/{id} PATCH - Atualiza parcialmente os dados do Pedido. caso ele não tenha sido entregue. Necessita da autenticação do Usuário que criou o Pedido ou de um Admin do Sistema
- usuarios/pedidos/atualizar/{id} GET - Faz a confirmação da entrega do Pedido . Necessita estar autenticado como o Vendedor e criador do Pedido ou Admin do sistema.
- /usuarios/produtos/{id}/ Delete - Apaga os dados do Pedido referente ao Id caso o Pedido tenha sido entregue.
Obs: Somente o Usuario que fez a solicitação do Pedido ou Admin consegue apagar.