- Deve ser possível criar um usuário.
- Deve ser possível identificar o usuário entre as requisições.
- Deve ser possível registrar uma refeição com as seguintes informações:
- Nome
- Descrição
- Data e Hora
- Está dentro ou fora da dieta.
- Deve ser possível editar uma refeição, permitindo a alteração de todos os dados mencionados acima.
- Deve ser possível apagar uma refeição.
- Deve ser possível listar todas as refeições de um usuário.
- Deve ser possível visualizar detalhes de uma única refeição.
- Deve ser possível recuperar métricas de um usuário, incluindo:
- Quantidade total de refeições registradas.
- Quantidade total de refeições dentro da dieta.
- Quantidade total de refeições fora da dieta.
- Melhor sequência por dia de refeições dentro da dieta.
- O usuário só pode visualizar, editar e apagar as refeições que ele criou.
# Clone o repositório
git clone [email protected]:gabrielgxrcia/daily-diet-api.git
# Instale as dependências do projeto
npm install
# Execute o projeto no ambiente de desenvolvimento
npm run dev
# Execute as migrations para criar o banco de dados
npm run knex -- migrate:latest
- Criar novo usuário
POST /users
Parâmetro | Tipo | Descrição |
---|---|---|
name |
Body - String |
Obrigatório. Nome do usuário. |
email |
Body - String |
Obrigatório. Email do usuário. |
address |
Body - String |
Obrigatório. Endereço do usuário. |
weight |
Body - Number |
Obrigatório. Peso do usuário. |
height |
Body - Number |
Obrigatório. Altura do usuário. |
- Criar novo registro de refeição
POST /meals
Parâmetro | Tipo | Descrição |
---|---|---|
name |
Body - String |
Obrigatório. Nome da refeição. |
description |
Body - String |
Obrigatório. Descrição da refeição. |
is_on_diet |
Body - Boolean |
Obrigatório. Indica se a refeição está na dieta. |
- Listar todas refeições registradas pelo usuário
GET /meals
Parâmetro | Tipo | Descrição |
---|---|---|
user_id |
Query Param |
Opcional. ID do usuário para filtras as métricas. |
- Listar uma refeição específica registrada pelo usuário
GET /meals/:${meal_id}
Parâmetro | Tipo | Descrição |
---|---|---|
meal_id |
Path Parameter |
Obrigatório. ID da refeição a ser consultada. |
- Mostrar um resumo geral das refeições cadastradas pelo usuário (total de refeições, refeições dentro da dieta e refeições fora da dieta)
GET /meals/summary
Parâmetro | Tipo | Descrição |
---|---|---|
user_id |
Query Param |
Opcional. ID do usuário para filtras as métricas. |
PUT /meals/:${meal_id}
Parâmetro | Tipo | Descrição |
---|---|---|
meal_id |
Path Parameter |
Obrigatório. ID da refeição a ser editada. |
name |
Body - String |
Opcional. Novo nome da refeição. |
description |
Body - String |
Obrigatório. Nova descrição da refeição. |
is_on_diet |
Body - Boolean |
Obrigatório. Indica se a refeição está agora na dieta. |
DELETE /meals/:${meal_id}
Parâmetro | Tipo | Descrição |
---|---|---|
meal_id |
Path Parameter |
Obrigatório. ID da refeição a ser excluída. |
- Should be able to create a new account
- Should be able to create a new meal
- Should be able to list all meals
- Should be able to get a specific meals
- Should be able to get the summary meals
- Should be able to delete a specific meal
- Should be able to edit a meal
# Após a instalação do projeto e suas depêndencias:
npm test