API de gerenciamento de loja em padrão REST feito com Node.js, Express e MySQL. Nele é possível realizar todas as operações CRUD (criação, leitura, atualização e remoção) para manipular dados relacionados a produtos e vendas. A API tem testes e cobertura dos mesmos utilizando Mocha, Chai e Sinon.
⏳ Em andamento
- Node.js
- Express
- MySQL
- Mocha
- Chai
- Sinon
O projeto requer que seja utilizado o banco de dados StoreManager localizado na raíz do projeto (StoreManager.sql
)
git clone git@github.com:LeomarLinhares/store-manager-api.git
- Entre na pasta do repositório que você acabou de clonar:
cd store-manager-api
- Instale as dependências:
npm install
- Inicialize o projeto:
npm run debug
É necessário um arquivo .env
com as seguintes variáveis de ambiente:
- MYSQL_HOST: por padrão é
localhost
, mas é o host do seu banco de dados. - MYSQL_USER: o nome de usuário utilizado para se conectar ao banco.
- MYSQL_PASSWORD: a senha utilizada para se conectar ao banco.
- PORT: por padrão é
3000
, mas trata-se da porta onde rodará a aplicação.
/products
: Retorna todos os produtos cadastrados.
/products/:id
: Retorna um único produto onde :id
deve ser substituído por um id.
/products
: Adiciona um produto ao banco de dados e sua quantidade.
É necessário informar no corpo da requisição a seguinte estrutura:
{
"name": "Nome do produto",
"quantity": 1
}
/products/:id
: Atualiza um produto cujo id fora informado na rota.
É necessário informar no corpo da requisição a seguinte estrutura:
{
"name": "Nome do produto",
"quantity": 1
}
/products/:id
: Remove um produto com o id informado do banco de dados.
/sales
: Retorna todas as vendas cadastradas.
/sales/:id
: Retorna uma única venda onde :id
deve ser substituído por um id.
/sales
: Adiciona uma venda ao banco de dados.
É necessário informar no corpo da requisição a seguinte estrutura:
[
{
"product_id": "product_id",
"quantity": "product_quantity",
}
]
Note que trata-se de um Array de itens, logo é possível inserir vários produtos em uma única venda.
/sales/:id
: Atualiza a venda com o id informado.
É necessário informar no corpo da requisição a seguinte estrutura:
[
{
"product_id": "product_id",
"quantity": "product_quantity",
}
]
/sales/:id
: Remove a venda com o id informado.
- Refatorar salesService.js para refazer a forma que remove o snake case
- Criar estrutura de pastas mais organizada para melhor aproveitamento em portfólio
- Cobrir 100% das camadas da aplicação com os testes