MongoDB
: É preciso criar um cluster ou utilizar o site MongoDB AtlasNodeJS
: Foi utilizado o node v20.10.0
Para rodar este projeto, é necessário adicionar as seguintes variáveis de ambiente no seu .env
ou renomear o arquivo .env.example
para .env
e configurar as variáveis de acordo.
DATABASE_URL
: URL do MongoDBPORT
: Porta do servidor (opcional)KEY_FILENAME
: Nome do arquivo do Google Cloud StoragePROJECT_ID
: Nome do id do projeto do Google Cloud StorageBUCKET_NAME
: Nome do bucket do Google Cloud Storage
Para começar a utilizar o projeto, siga os passos abaixo:
-
Na pasta do projeto, abra um terminal.
-
Execute o comando abaixo para instalar as dependências:
npm install
-
Escolha qual forma deseja inicializar: Produção ou Desenvolvedor(auto-refresh)
npm run start
npm run start:dev
Node.js, NestJS, MongoDB
-
POST /menu
Corpo Tipo Descrição Turno
enum["DIURNO", "NOTURNO"]
Obrigatório. Podendo cadastrar só um deles ou ambos GET /menu
GET /menu/shift
GET /menu/products
GET /menu/{id}
Parâmetro Tipo Descrição id
string
Obrigatório. Retornando o cardápio GET /menu/{id}/products
Parâmetro Tipo Descrição id
string
Obrigatório. Retornando o cardápio com os produtos PUT /menu/${id}
Obs: Só é possível modificar se não houver o turno que deseja
Parâmetro Tipo Descrição id
string
Obrigatório. O ID do cardápio que deseja modificar Corpo Tipo Descrição shift
enum["DIURNO","NOTURNO"]
Obrigatório. DELETE /menu/${id}
Obs: Deletar o cardápio apagará em cascada a associação com os produtos
Parâmetro Tipo Descrição id
string
Obrigatório. O ID do cardápio que deseja deletar -
POST /category
Corpo Tipo Descrição name
string
Obrigatório. Nome da categoria GET /category
GET /category/products
GET /category/{id}
Parâmetro Tipo Descrição id
string
Obrigatório. O ID da categoria que deseja buscar GET /category/{id}/products
Parâmetro Tipo Descrição id
string
Obrigatório. O ID da categoria que deseja buscar PUT /category/{id}
Parâmetro Tipo Descrição id
string
Obrigatório. O ID da categoria que deseja modificar Obs: Só é possível deletar a categoria se não houver produtos nela
DELETE /category/{id}
Parâmetro Tipo Descrição id
string
Obrigatório. O ID da categoria que deseja deletar -
POST /product
Corpo Tipo Descrição name
string
Obrigatório. O nome do produto price
number
Obrigatório. O valor do produto image
binary
Imagem do Produto description
string
Descrição do produto categoryId
string
Obrigatório. ID da categoria GET /product
GET /product/category
GET /product/{id}
Parâmetro Tipo Descrição id
string
Obrigatório. O ID do produto GET /product/{id}/category
Parâmetro Tipo Descrição id
string
Obrigatório. O ID do produto PUT /product/{id}
Parâmetro Tipo Descrição id
string
Obrigatório. O ID do produto Corpo Tipo Descrição name
string
O nome do produto price
number
O valor do produto image
binary
Imagem do Produto description
string
Descrição do produto categoryId
string
ID da categoria DELETE /product/${id}
Obs: Deletar o produto apagará em cascada a associação com o cardápio
Parâmetro Tipo Descrição id
string
Obrigatório. O ID do produto que deseja deletar -
POST /menu-product/{menuId}/add-product
Parâmetro Tipo Descrição menuId
string
Obrigatório. O ID do cardápio que deseja inserir Corpo Tipo Descrição ProductIds
string[]
ID dos produtos GET /menu-product/{menuId}/products
Parâmetro Tipo Descrição menuId
string
Obrigatório.O ID do cardápio que deseja visualizar DELETE /menu-product/{menuId}/remove-product
Parâmetro Tipo Descrição menuId
string
Obrigatório.O ID do cardápio que deseja remover os produtos Corpo Tipo Descrição ProductIds
string[]
ID dos produtos DELETE /menu-product/{menuId}/remove-all-product
Parâmetro Tipo Descrição menuId
string
Obrigatório.O ID do cardápio que deseja remover todos os produtos