/Store-Manager

A API RESTful construída é de um sistema de gerenciamento de vendas no formato dropshipping que será possível criar, visualizar, deletar e atualizar produtos e vendas.

Primary LanguageJavaScript

Store Manager

Esta foi uma API RESTful desenvolvida afim de consolidar os conhecimentos adquiridos sobre o padrão de arquitetura de software MSC( Model-Service-Controller).

A API construída é de um sistema de gerenciamento de vendas no formato dropshipping que será possível criar, visualizar, deletar e atualizar produtos e vendas.

Foram desenvolvidos testes unitários para essa API utilizando Mocha, Chai e Sinon.

Para o gerenciamento dos dados foi utlizado o banco de dados relacional MYSQL.

Autor

Aprendizados

Construção de uma API RESTful aplicando o padrão de arquitetura de software MSC (Model-Service-Controller) e desenvolvimento de testes unitários.

Rodando o servidor no Docker

Clone o projeto

  git clone git@github.com:saulomagalhaes/Store-Manager.git

Entre no diretório do projeto

  cd Store-Manager

Instale as dependências

  npm install

Suba o container Docker

  docker-compose up -d

Execute o container

   docker exec -it store_manager bash

Inicie o servidor dentro do container

   npm start

Documentação Completa da API

Ao subir o container docker acesse o link e tenha acesso a documentação de forma mais detalhada.

http://localhost:3000/doc

Documentação Resumida da API

Products

Retorna todos os produtos

  GET /products

Retorna um produto

  GET /products/{id}
Parâmetro Tipo Descrição
id string Obrigatório. O ID do produto que você quer buscar

Retorna um item

  GET /products/search?q=NomeDoProduto
Parâmetro Tipo Descrição
q string Opcional. O Nome do produto para a busca
 Observação: Se não passar nenhum nome retorna todos os produtos.

Adiciona um produto

  POST /products
Body Tipo Descrição
name string Obrigatório. O Nome do produto a ser adicionado
Exemplo:
{
  "name": "Martelo de Thor"
}

Atualiza um produto

  PUT /products/{id}
Parâmetro Tipo Descrição
id string Obrigatório. O ID do produto que você quer atualizar
Body Tipo Descrição
name string Obrigatório. O Nome do produto a ser atualizado
Exemplo:
{
  "name": "Luva de Pedreiro"
}

Deleta um produto

  DELETE /products/{id}
Parâmetro Tipo Descrição
id string Obrigatório. O ID do produto que você quer deletar

Sales

Retorna todas as vendas

  GET /sales

Retorna uma venda

  GET /sales/{id}
Parâmetro Tipo Descrição
id string Obrigatório. O ID da venda que você quer buscar

Adiciona uma venda

  POST /sales
Body Tipo Descrição
productId string Obrigatório. O id da produto
quantity number Obrigatório. A quantidade
Exemplo:
  [
    {
      "productId": 1,
      "quantity":1
    },
    {
      "productId":5 ,
      "quantity":5
    }
  ]

Atualiza uma venda

  PUT /sales/{id}
Parâmetro Tipo Descrição
id string Obrigatório. O ID da venda que você quer atualizar
Body Tipo Descrição
productId string Obrigatório. O id do produto
quantity number Obrigatório. A quantidade
Exemplo:
  [
    {
      "productId": 1,
      "quantity":20
    },
    {
      "productId": 2,
      "quantity":30
    }
  ]

Deleta uma venda

  DELETE /sales/{id}
Parâmetro Tipo Descrição
id string Obrigatório. O ID da venda que você quer deletar

Rodando os testes

Para rodar os testes, execute o seguinte comando:

  npm run test:mocha

Screenshots

App Screenshot

App Screenshot

Referências

MIT License