Giter Site home page Giter Site logo

favoriteproducts's Introduction

Produtos favoritos

API para controle de lista de produtos favoritos de clientes.

Instalação

Você deverá ter em sua máquina os seguinte itens:

  1. Faça um Fork ou clone este repositório.

  2. Instale as dependências do projeto:

    npm install

    ou se você usa yarn:

    yarn
  3. Tenha o Postgres rodando em sua máquina com um database com nome favoriteproducts — ou execute o Docker Compose (neste caso o database será criado automaticamente):

    docker-compose up

    Será executado o Postgres em sua máquina virtual docker na porta 5432, isso pode ser alterado no arquivo docker-compose.yml.

  4. Crie um arquivo .env no diretório raiz, utilize o arquivo .env-example como padrão.

  5. Execute npx sequelize db:migrate (ou se você usa yarn yarn sequelize db:migrate) para gerar as tabelas no database.

Execução

Para início da aplicação, execute:

Desenvolvimento (com nodemon):

npm run dev

ou se você usa yarn:

yarn dev

Produção:

npm run start

ou se você usa yarn:

yarn start

Isso iniciará o servidor com base nos dados informados no arquivo .env, caso tenha seguido o exemplo iniciará em localhost:3333

Testes

Os testes estão localizados na pasta __tests__.

Use o comando abaixo para executar os testes:

npm test

ou se você usa yarn:

yarn test

OBS:. A execução dos testes executa o script sequelize db:migrate, criando as tabelas no database

OBS2:. A execução dos testes efetua a limpeza das tabelas ao final dos testes

Endpoints

Autenticação

POST: /authenticate

Autentica o usuário e fornece um token jwt (este token será obrigatório em todos os próximos endpoints):

{
  "username": "LuizaLabsUser",
  "password": "LuizaLabsPassword"
}

O token deve ser enviado no header Authorization dos endpoints abaixo acompanhado da palavra Baerer, exemplo: Bearer <token>

Clientes

GET: /customers?page=<NUMERO_DA_PAGINA>&perPage=<QUANTIDADE_POR_PAGINA>

OBS:. O parâmetro page e o parâmetro perPage são opcionais. Caso os mesmos não sejam fornecidos, serão utilizados os valores 1 e 10 respectivamente`

Ação: Retorna uma lista de Clientes

POST: /customers

{
  "name": "Jessiley Oliveira",
  "email": "[email protected]"
}

Ação: Cadastra um novo cliente

GET: /customers/<ID_CLIENTE>

Ação: Retorna um cliente com base no ID

PUT: /customers/<ID_CLIENTE>

{
  "name": "Jessiley Willian",
  "email": "[email protected]"
}

Ação: Atualiza os dados de um cliente

DELETE: /customers/<ID_CLIENTE>

Ação: Remove um cliente

Produtos favoritos

OBS:. Os produtos não são gerenciados por este sistema, para ver a documentação da API de produtos acesse

POST: /customers/<ID_CLIENTE>/favoriteproduct/<ID_PRODUTO>

Ação: Adiciona um produto a lista de favoritos do cliente

GET: /customers/<ID_CLIENTE>/favoriteproduct?page=<NUMERO_DA_PAGINA>&perPage=<QUANTIDADE_POR_PAGINA>

OBS:. O parâmetro page e o parâmetro perPage são opcionais. Caso os mesmos não sejam fornecidos, serão utilizados os valores 1 e 10 respectivamente`

Ação: Obtém a lista de produtos favoritos de um cliente

DELETE: /customers/<ID_CLIENTE>/favoriteproduct/<ID_PRODUTO>

Ação: Remove um produto da lista de favoritos de um cliente

favoriteproducts's People

Contributors

jessileyoliveira avatar dependabot[bot] avatar

Stargazers

Kelvin Musselli avatar  avatar

Watchers

 avatar

Forkers

kelvinmusselli

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.